Я делаю приложение для загрузки с YouTube на mp3. Используя Django и pafy,
Я застрял над двумя проблемами из-за долгого времени,
Pafy по умолчанию даетwebm и mp4a Я хочу конвертировать их в mp3-файлы, не загружая их на мои серверы, это возможно?И могу ли я изменить миниатюру mp3-файла?
Ссылка, которую дает pafy, не является ссылками на скачивание, которые они начинают воспроизводить в браузере.Как конвертировать их в скачиваемые ссылки, я пробовал некоторые комбинации, но всегда получал ошибку.
Вот мои файлы
Views.py
class download(generic.View):
template_name = 'download_mp3.html'
def get(self, request, *args, **kwargs):
return render(request, self.template_name)
def post(self, request, *args, **kwargs):
url = request.POST['url']
url = url_corrector(url) # Converting the urls in a format that is supported by pafy.
video = pafy.new(url) # creates a pafy object for a given youtube url.
stream_audio = video.audiostreams # only audio
audio_streams = list() # list of all the dash audio formats(only audio)
for a in stream_audio:
audio_streams.append(
[a.bitrate, a.extension, filesizeformat(a.get_filesize()), a.url + "&title=" + video.title])
return render(request, self.template_name,
{'url': request.POST['url'],
'title': video.title,
'thumb': video.bigthumbhd,
'duration': video.duration, 'views': video.viewcount,
'stream_audio': audio_streams})
urls.py
urlpatterns = [
path('', views.download.as_view(), name='youtube_to_mp3')
]
download.html
<table class="table table-hover text-center">
<p align="center">Audio Only</p>
<thead>
<tr class="text-center">
<th class="text-center">Bitrate</th>
<th class ="text-center">Extension</th>
<th class="text-center">File Size</th>
<th class="text-center">Download Link</th>
<th class="text-center">Download </th>
</tr>
</thead>
<tbody>
{% for file_size,bitrate,extension,url in stream_audio %}
<tr>
<td>{{ file_size }}</td>
<td>{{ bitrate }} </td>
<td>{{ extension }}</td>
<td><a href="{{ url }}" download="{{ title }}.{{ extension }}"><span
class="glyphicon glyphicon-download-alt"></span> Download</a></td>
<td><a href="{{ download }} "></a> </td>
<!-- <td><a href="{{ download_url }} ">Direct</a> </td> -->
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% else %}
{% endif %}