Download video in mp3 format using pytube

前端 未结 5 1277
清歌不尽
清歌不尽 2021-02-08 07:26

I have been using pytube to download youtube videos in python. So far I have been able to download in mp4 format.

yt = pytube.YouTube(\"https://www.youtube.com/         


        
5条回答
  •  时光取名叫无心
    2021-02-08 08:33

    How can I download the video as an audio file, in .mp3 format directly?

    I'm afraid you can't. The only files available for direct download are the ones which are listed under yt.streams.all().

    However, it is straightforward to convert the downloaded audio file from .mp4 to .mp3 format. For example, if you have ffmpeg installed, running this command from the terminal will do the trick (assuming you're in the download directory):

    $ ffmpeg -i downloaded_filename.mp4 new_filename.mp3
    

    Alternatively, you can use Python's subprocess module to execute the ffmpeg command programmatically:

    import os
    import subprocess
    
    import pytube
    
    yt = pytube.YouTube("https://www.youtube.com/watch?v=WH7xsW5Os10")
    
    vids= yt.streams.all()
    for i in range(len(vids)):
        print(i,'. ',vids[i])
    
    vnum = int(input("Enter vid num: "))
    
    parent_dir = r"C:\YTDownloads"
    vids[vnum].download(parent_dir)
    
    new_filename = input("Enter filename (including extension): "))  # e.g. new_filename.mp3
    
    default_filename = vids[vnum].default_filename  # get default name using pytube API
    subprocess.run([
        'ffmpeg',
        '-i', os.path.join(parent_dir, default_filename),
        os.path.join(parent_dir, new_filename)
    ])
    
    print('done')
    

    EDIT: Removed mention of subprocess.call. Use subprocess.run (unless you're using Python 3.4 or below)

提交回复
热议问题