Как конвертировать аудио файлы pafy в mp3 на лету в приложении Django - PullRequest
0 голосов
/ 07 октября 2018

Я делаю приложение для загрузки с YouTube на mp3. Используя Django и pafy,

Я застрял над двумя проблемами из-за долгого времени,

  1. Pafy по умолчанию даетwebm и mp4a Я хочу конвертировать их в mp3-файлы, не загружая их на мои серверы, это возможно?И могу ли я изменить миниатюру mp3-файла?

  2. Ссылка, которую дает 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 %}

1 Ответ

0 голосов
/ 19 марта 2019

Мне жаль, что я пишу это здесь, у меня нет 50 репо, чтобы написать комментарий, поэтому я должен написать это здесь, я удалю, как только он (Abhijeet pal) ответит здесь

Привет, яЯ также делаю YouTube из Django, но я поражен в части загрузки

<a href="{{ music_down.url }}" download="{{ music_down.filename }}">
  <input class="btn btn-danger" type="button" value="Download">
</a>

Он открывается в черном окне с мини-плеером, и когда я пытаюсь загрузить, он не показывает мне название видео этосохраняет как "videoplayback.mp4" как ты с этим справился?

...