Youtubeビデオはスタンドアロンで視聴することも、プレイリストの一部にすることもできます。
例:
https://www.youtube.com/watch?v=vbsNiOkm0B および
https://www.youtube.com/watch?v=vbsNiOkm0BU&index=141&list=UUmM7KPLEthAXiPVAgBF6rhA
vbsNiOkm0BU
という部分に注目してください。
問題は、チャンネル/プレイリストのすべての動画でこの部分を取得することです。
動機は、このチャンネルのすべてのビデオ(約3600)をダウンロードすることです。しかし、youtube-dl
を一度にすべてダウンロードすることに成功していません。
だから、例として、100単位でダウンロードしたいと思います。
この質問をさらに進めることができる場合、プレイリストの特定のインデックスのみをダウンロードするbashスクリプトを作成できますか?
上記のリンクが表示される場合:
https://www.youtube.com/watch?v=vbsNiOkm0BU&index=141&list=UUmM7KPLEthAXiPVAgBF6rhA
部品に注意してください&index=141
。
今、このようなことをしたら:
for i in {100..200}
do
youtube-dl https://www.youtube.com/watch?v=vbsNiOkm0BU&index=${i}&list=UUmM7KPLEthAXiPVAgBF6rhA
done
&index=${i}
という部分に注目してください。
vbsNiOkm0BU
により、同じ動画を何度もダウンロードしています。
これに関する助けは大歓迎です。ありがとうございました。
youtube-dl -f FORMAT -ciw --output '%(title)s.%(ext)s' --playlist-start NUMBER-START --playlist-end NUMBER-END <url-of-playlist>
...ここで、<url-of-playlist>
はプレイリストのURLに置き換えられ、FORMAT
を使用可能なビデオ形式に置き換えます。たとえば、18
、NUMBER-START
は入力されたビデオの数です最初にダウンロードを開始するプレイリスト。NUMBER-END
は、最後にダウンロードするプレイリスト内のビデオの番号です。
チャンネルに複数のプレイリストがある場合、最初のプレイリストをクリックし、上記のコマンドを使用して、選択したプレイリスト内のすべてのビデオをダウンロードします。次に、チャンネル内の各プレイリストについて繰り返します。
-f, --format FORMAT
video format code. The -F option (capital F) displays all available video
formats for a video link. Example: youtube-dl -F <url-of-video>
-c, --continue
force resume of partially downloaded files
-i, --ignore-errors
continue on download errors, for example to skip unavailable videos
in a channel
-w, --no-overwrites
do not overwrite files
youtube-dl -f FORMAT -ciw --output '%(title)s.%(ext)s' --playlist-start NUMBER-START --playlist-end NUMBER-END <url-of-playlist>
find -type f -exec rename 'y/A-Z/a-z/' {} +
説明
--output '%(title)s.%(ext)s'
output file name(s) as the name of the video, followed by a dot character and the video's extension
find -type f
Find all files.
y/source/destination/
Transliterate the characters in the pattern space which appear in source
to the corresponding character in destination.