8

PyTubeライブラリを使用して YouTube プレイリストをダウンロードしようとしています。現在、一度に 1 つのビデオをダウンロードできます。一度に複数のビデオをダウンロードできません。

現在、私の実装は

import pytube

link = input('Please enter a url link\n')
yt = pytube.YouTube(link)
stream = yt.streams.first()
finished = stream.download()
print('Download is complete')

これにより、次の出力が得られます

>> Download is complete

YouTubeファイルがダウンロードされます。プレイリスト リンク () でこれを試すと、最初のビデオのみがダウンロードされます。エラー出力はありません。

ユーザーに再度プロンプトを表示することなく、プレイリスト全体をダウンロードできるようにしたいと考えています。

4

7 に答える 7

14

上記の解決策は機能しなくなりました。これは、Youtube プレイリストで参照されているビデオのサウンド ストリームをダウンロードするコードです。pytube ではなく、Pytube3 が使用されます。ダウンロードを成功させるには、プレイリストが公開されている必要があることに注意してください。また、サウンド トラックのみではなくビデオ全体をダウンロードする場合は、Youtube タグ定数の値を変更する必要があります。空の Playlist.videos リストの修正は、この Stackoverflow の投稿から取得されました: PyTube3 Playlist returns empty list

import re
from pytube import Playlist

YOUTUBE_STREAM_AUDIO = '140' # modify the value to download a different stream
DOWNLOAD_DIR = 'D:\\Users\\Jean-Pierre\\Downloads'

playlist = Playlist('https://www.youtube.com/playlist?list=PLzwWSJNcZTMSW-v1x6MhHFKkwrGaEgQ-L')

# this fixes the empty playlist.videos list
playlist._video_regex = re.compile(r"\"url\":\"(/watch\?v=[\w-]*)")

print(len(playlist.video_urls))

for url in playlist.video_urls:
    print(url)

# physically downloading the audio track
for video in playlist.videos:
    audioStream = video.streams.get_by_itag(YOUTUBE_STREAM_AUDIO)
    audioStream.download(output_path=DOWNLOAD_DIR)
于 2020-08-03T15:36:57.007 に答える