YouTubeビデオ(たとえば、 this one )からすべて(字幕、カード、タグ、注釈、サムネイルなど(および明らかにオーディオ付きのビデオ))をダウンロードしたい。
youtube-dl
を使用していますが、使用するスイッチが圧倒的に多いため、ニーズに合ったものを見つけることができないようです。また、品質を落とすことなく、可能な限り最高の品質でビデオ/オーディオをダウンロードしたいと思います。 YouTubeではありませんが、長い道のりで旅行中に視聴できるように、購入した自分のudemyコースの一部もダウンロードしたかったのです。
ffmpeg
をインストールしています。YouTubeからのロスレスダウンロードにはこれが必要だと聞きましたが、youtube-dl
とリンクする方法がわかりません。
youtube-dl
を使用するのはこれが初めてなので、どんな助けでも大歓迎です。
必要な関連オプション:
# Filesystem
--write-annotations
--write-description
--write-info-json
# Thumbnail images
--write-all-thumbnails
# Video format
--format bestvideo+bestaudio/best
--merge-output-format mkv
--youtube-skip-dash-manifest
# Subtitle
--all-subs
--write-auto-sub
--write-sub
# Post-processing
--add-metadata
--embed-subs
それを設定ファイルにコピーします(/etc/youtube-dl.conf
または~/.config/youtube-dl/config
のいずれか)。
その構成を使用して、 このビデオ をダウンロードし、youtube-dl
が以下のファイルを作成しました。
$ ls
The Problem with Time & Timezones - Computerphile.annotations.xml
The Problem with Time & Timezones - Computerphile.description
The Problem with Time & Timezones - Computerphile.info.json
The Problem with Time & Timezones - Computerphile.jpg
The Problem with Time & Timezones - Computerphile.mkv
mediainfo
の出力は文字数制限を超えているため、ここに投稿することはできませんが、 github で確認できます。
ビデオ/オーディオも可能な限り最高の品質でダウンロードし、品質を損なうことはありません。
youtube-dl
はデフォルトで可能な限り最高の品質でビデオをダウンロードしますが、--format bestvideo+bestaudio/best
を使用してこの動作を強制できます。
YouTubeではありませんが、長い道のりの旅行中にそれらを見ることができるように、購入した私のudemyコースの一部もダウンロードしたかったです。
記事を読んでください 私のコンピューターにコースをダウンロードできますか? :
デフォルトでは、完全なコースはコンピューターからダウンロードできません。これは著作権侵害の懸念から行われます。
demyモバイルアプリ でオフライン表示用のコースをいつでも保存できることに注意してください。 iOSのモバイルデバイスにビデオ講義をダウンロードする方法については、 here をクリックしてください。 Androidデバイスでオフライン視聴用にビデオをダウンロードする方法の手順については、 here 。をクリックしてください
ffmpeg
がインストールされており、YouTubeからのロスレスダウンロードにはこれが必要だと聞きましたが、youtube-dl
とリンクする方法がわかりません。
youtube-dl
はデフォルトでavconv
を使用しますが、--prefer-ffmpeg
では代わりにffmpeg
を使用できます。とにかく、このオプションは「lossless downloads」には必要ありません。私が提供した例では、youtube-dl
はffmpeg
のみを使用して、ダウンロードされたすべてのフォーマットを単一のmkvファイルにマージしました。
ビデオを単にダウンロードするために、これを使用できます:
youtube-dl --all-subs "https://www.youtube.com/watch?v=KYBok-XGsKM"
ビデオ品質を選択するには、まず-Fオプションを使用して使用可能な形式をリストする必要があります。
youtube-dl -F "https://www.youtube.com/watch?v=KYBok-XGsKM"
そして、これはあなたのビデオの出力です:
[youtube] KYBok-XGsKM: Downloading webpage
[youtube] KYBok-XGsKM: Downloading video info webpage
[youtube] KYBok-XGsKM: Extracting video information
WARNING: unable to extract uploader nickname
[info] Available formats for KYBok-XGsKM:
format code extension resolution note
249 webm audio only DASH audio 52k , opus @ 50k, 4.19MiB
250 webm audio only DASH audio 75k , opus @ 70k, 5.42MiB
140 m4a audio only DASH audio 129k , m4a_dash container, mp4a.40.2@128k, 10.59MiB
171 webm audio only DASH audio 131k , vorbis@128k, 7.66MiB
251 webm audio only DASH audio 135k , opus @160k, 9.58MiB
278 webm 256x144 144p 98k , webm container, vp9, 30fps, video only, 6.59MiB
160 mp4 256x144 144p 114k , avc1.4d400c, 15fps, video only, 9.04MiB
242 webm 426x240 240p 205k , vp9, 30fps, video only, 11.47MiB
133 mp4 426x240 240p 265k , avc1.4d4015, 30fps, video only, 20.11MiB
243 webm 640x360 360p 362k , vp9, 30fps, video only, 21.93MiB
134 mp4 640x360 360p 602k , avc1.4d401e, 30fps, video only, 20.42MiB
244 webm 854x480 480p 662k , vp9, 30fps, video only, 37.82MiB
135 mp4 854x480 480p 1020k , avc1.4d401f, 30fps, video only, 42.62MiB
247 webm 1280x720 720p 1353k , vp9, 30fps, video only, 81.53MiB
136 mp4 1280x720 720p 2013k , avc1.4d401f, 30fps, video only, 84.69MiB
137 mp4 1920x1080 1080p 2438k , avc1.640028, 30fps, video only, 157.71MiB
248 webm 1920x1080 1080p 2593k , vp9, 30fps, video only, 162.48MiB
264 mp4 2560x1440 1440p 6973k , avc1.640032, 30fps, video only, 459.58MiB
271 webm 2560x1440 1440p 7523k , vp9, 30fps, video only, 485.66MiB
313 webm 3840x2160 2160p 19991k , vp9, 30fps, video only, 1.34GiB
36 3gp 320x? small , mp4v.20.3, mp4a.40.2
17 3gp 176x144 small , mp4v.20.3, mp4a.40.2@ 24k
43 webm 640x360 medium , vp8.0, vorbis@128k
18 mp4 640x360 medium , avc1.42001E, mp4a.40.2@ 96k
22 mp4 1280x720 hd720 , avc1.64001F, mp4a.40.2@192k (best)
字幕の便利なオプションは次のとおりです。
--write-sub
Write subtitle file
--write-auto-sub
Write automatically generated subtitle file (YouTube only)
--all-subs
Download all the available subtitles of the video
--list-subs
List all available subtitles for the video
サムネイルの場合:
--write-thumbnail
Write thumbnail image to disk
--write-all-thumbnails
Write all thumbnail image formats to disk
--list-thumbnails
Simulate and list all available thumbnail formats
また、ビデオの品質に関する詳細情報を見つけることができます こちら
注:混乱を避けるために、より長いスイッチ名を使用します。使用されるスイッチの多くには、より短いバージョンがあります。 Docs:Options を参照してください。
注:-視覚的な利便性のために、\
はスイッチを個別に表示するために使用されます。すべての\
は省略できます。 \
を使用する場合は、\
の後にスペース文字がないことを確認してください。
概要:利用可能な最高のビデオおよびオーディオ品質の単一のビデオファイルをダウンロードするytdlコマンド。ビデオを独自のディレクトリ(ユーザーが指定)に保存します。使用可能なすべてのメタデータをダウンロードし、それぞれをそれぞれのファイル形式に書き込み、同じディレクトリに保存します。ビデオ出力ファイルにビデオメタデータを追加します。
独自のもので置き換え:
/archive/videos/TED_Archive/
および--download-archive
の--output
を選択したディレクトリパスに置き換えます。====
youtube-dl \
--limit-rate '0.25M' \
--retries '3' \
--no-overwrites \
--call-home \
--write-info-json \
--write-description \
--write-thumbnail \
--all-subs \
--convert-subs 'srt' \
--write-annotations \
--add-metadata \
--embed-subs \
--download-archive '/archive/videos/TED_Archive/TED_Archive.ytdlarchive' \
--format 'bestvideo+bestaudio/best' \
--merge-output-format 'mkv' \
--output '/archive/videos/TED_Archive/%(upload_date)s_%(id)s/TED_Archive_%(upload_date)s_%(id)s_%(title)s.%(ext)s' \
'https://www.youtube.com/watch?v=0bFs6ZiynSU' ;
注:安全性を解析するために、すべての引数を' '
で囲みます。
推奨スイッチの説明:
--limit-rate '0.25M'
は、すべてのyoutube-dlインスタンスの使用可能な最大ダウンロード速度をB/s(バイト/秒)で制限するために使用されます。
引数:大文字の単位の接尾辞が付いた正の整数。
単位のサフィックス:Kキロバイト。 Mはメガバイト。ギガバイトがサポートされているかどうか不明。
追加:
1。インターネット接続の妨害を避けてください。
2。複数の同時ytdlインスタンスのダウンロード速度を管理するときに役立ちます。
省略:
1。インターネットを詰まらせます。閲覧できず、YouTube動画の再生が遅れています。
2。ビデオをできるだけ早くダウンロードします。
注:複数のyoutube-dlインスタンスを同時に実行できます。
--retries '5'
は、失敗した場合にビデオのダウンロードを自動再試行するために使用されます。プレイリストまたはチャンネル全体(つまり、YouTubeの用語では、その特定のチャンネルのプレイリスト)をダウンロードするときに便利です。
値:任意の正の整数を選択します。デフォルトは10
です。最大はinfinite
(リテラル文字列として入力)です。
--continue
引数:なし
追加:
1。部分ファイルのダウンロードを強制的に再開します
注:ytdlはビデオをチャンクでダウンロードします。ダウンロード中にytdlが予期せず終了した場合、チャンクは保持されます。
省略:
1。デフォルトでは、可能であればytdlはダウンロードを再開します。
--no-overwrites
引数:なし
Addition:willnot既存のメタデータファイルで上書き同じ名前。
省略:は、既存のメタデータファイルを同じ名前で上書きしますが、ビデオファイルは上書きしません。
--call-home
は、デバッグのためにytdlサーバーに接続するために使用されます。「サーバーに複数のIPがある場合、または検閲が疑われる場合は、-call-homeを追加すると、より多くの診断を取得できます。 – ドキュメント:バグ 、20180408を取得、
--write-info-json
引数:なし
出力形式:json;
情報内容:視聴回数、高評価、アップロード日、ビデオおよびオーディオ品質情報など(ただし、ビデオテキストの説明は除く(投稿済みアップローダーによるビデオの下(2018 youtubeレイアウト)))
追加:ビデオメタデータを別の.info.json
ファイルに書き込みます。ビデオファイルと同じフォルダに保存されます。
省略:は、--add-metadata
に影響を与えません。--write-description
は、ビデオメタデータをビデオ出力ファイルに書き込みます。
Write .description
引数:なし
出力形式:プレーンテキスト。
Addition:は、動画の説明セクションに動画アップローダーが投稿したテキスト(動画の下(2018 youtubeレイアウト))を書き込みます個別の--write-thumbnail
ファイル。ビデオファイルと同じフォルダに保存されます。
maxresdefault.jpg
は、利用可能な最高解像度のサムネイル(youtubeでは.jpg
と呼ばれます)を--output
ファイルに書き込みます。 youtube-dl --list-thumbnails '<video_url>'
で指定されたテンプレートに従って名前が変更されました。ビデオファイルと同じディレクトリに保存されます。
引数:なし
出力形式:JPEGのみ。
注:youtube-dl --list-thumbnails 'https://www.youtube.com/watch?v=odwfHu6MDuU'
を使用して、特定のビデオの利用可能なサムネイルを調査します(プレイリストリンクでは機能しません)。例:--write-annotations
.annotations.xml
は、ビデオ注釈を--output
ファイルに書き込みます。 --all-subs
で指定されたテンプレートに従って名前が変更されました。ビデオファイルと同じディレクトリに保存されます。
引数:なし
出力フォーマット:.xml;
subtitles.en.vtt
は、ビデオ用にカスタムで作成されたすべての利用可能な字幕をそれぞれのファイルに書き込みます(例:subtitles.fr.vtt
、subtitles.es.vtt
、.vtt
)
引数:なし
出力フォーマット:デフォルト--sub-format
; WARNING: video doesn't have subtitles
で他の形式を指定できます
エラーメッセージ:使用可能な字幕がない場合、警告メッセージが標準出力に出力されます-形式:youtube-dl --list-subs '<video_url>'
注:youtube-dl --list-subs 'https://www.youtube.com/watch?v=odwfHu6MDuU'
を使用して、特定のビデオの利用可能なサムネイルを調査します(プレイリストリンクでは機能しません)。
例:--convert-subs 'srt'
.srt
引数:文字列:形式拡張ass、srtまたはbest
出力形式:デフォルト.vtt;または仕様に従って
Addition:は、指定されたファイル形式に字幕を書き込みます(例:.vtt
)。ビデオファイルと同じフォルダに保存されます。
省略:字幕は[ffmpeg] There aren't any subtitles to convert
として書き込まれます
エラーメッセージ:使用可能な字幕がない場合、INFOメッセージがstdoutに出力されます-形式:.vtt
注:変換は、ダウンロード後の--add-metadata
ファイルに対する後処理ステップとして実行されます。 ytdlの実行が予期せず終了した場合、一部の字幕ファイルが変換されない可能性があります(この場合、コマンドを再度実行します)。
.info.json
引数:なし
Behavior:は、メタデータをビデオ出力ファイルに書き込みます。
注:は、--write-info-json
によって生成された--embed-subs
を必要としません
[ffmpeg] There aren't any subtitles to embed
引数:なし
動作:
1。字幕をビデオ出力ファイルに書き込みます。
2。 mp4、webm、mkvビデオのみ
エラーメッセージ:使用可能な字幕がない場合、INFOメッセージがstdoutに出力されます-形式:.vtt
注:は、--write-sub
、--write-auto-sub
、または_ [によって生成される--all-sub
を必要としませんSOMECODE] _
--download-archive '<archive_path>/<channel_name>/<channel_name>.ytdlarchive'
Behavior:は、以前にダウンロードしたビデオのリンクを含むテキストファイルを作成するために使用されます。チャンネル全体をダウンロードするときにこれらのビデオをスキップできます。単一のビデオのみをダウンロードする場合は必要ありません。
引数:文字列:ビデオアーカイブへのパスの合成、チャンネルにちなんで名付けられたディレクトリ。ファイル名は、.ytdlarchive
ファイル拡張子を持つチャネル名で構成されます。 (.txtでもかまいませんが、独自の形式により簡単に区別できます)
出力形式:プレーンテキスト。 1行に1つのvideoID
追加:
1。 ytdlはこのファイルを読み取り、videoIDがリストされているすべての動画を無視し、まだダウンロードしていない場合でもスキップします。
2。最後にダウンロードしたビデオのvideoIDをこのファイルに自動的に追加します
省略:ビデオファイルとメタデータファイルが存在する場合、ytdlはそれらを再度ダウンロードします。
--format ''
引数:推奨される文字列:bestvideo+bestaudio/best
は、最高のビデオとオーディオ品質の組み合わせを保証します。
追加:ビデオ品質とオーディオ品質、およびそれらの組み合わせ、ならびにフォールバック品質の完全な制御
省略:デフォルトyoutube-dl will guess it for you by default
– Docs
注:Docs:Format Selection Examples を参照
--merge-output-format '<video_format>'
引数:ビデオファイル形式。 (例:mp4、mkv、3gpなど)
追加:はビデオファイル形式を指定できます
省略:デフォルトyoutube-dl will guess it for you by default
– Docs
注:Docs:Format Selection を参照
注:youtube-dl --list-formats '<video_url>'
を使用して、特定のビデオの利用可能なビデオおよびオーディオの品質とフォーマットを調査します(プレイリストリンクでは機能しません)。
例:youtube-dl --list-formats 'https://www.youtube.com/watch?v=odwfHu6MDuU'
--output '<template>'
引数:
1。ビデオファイル形式。 (例:mp4、mkv、3gpなど);
2。推奨:%(upload_date)s_%(id)s_%(title)s.%(ext)s
追加:ビデオファイルおよびすべてのメタデータファイルのファイル命名規則に影響を与えます
省略:デフォルトでは、ビデオタイトルはファイル名になります。デフォルトのテンプレート:%(id)s.%(ext)s
は、例:testvideo.mkv
を出力します
注:%
プレフィックスとs
サフィックスを忘れないでください(他にも十分です)。テンプレート要素間の_
は単なるセパレータであり、他の文字を使用できます。例:%(upload_date)s-%(id)s
注:ドキュメント:出力テンプレート を参照
'<video_url>'
引数:文字列:特定の動画のURL
エラーメッセージ:
1。ビデオURLが送信されない場合、ytdlは実行されず、ヘルプが表示されません。
2。無効なビデオURLが送信された場合、エラーメッセージがstdoutに出力されます-形式:ERROR: u'' is not a valid URL. Set --default-search "ytsearch" (or run youtube-dl "ytsearch:" ) to search YouTube
ストレージの推奨事項:
ビデオアーカイブにmisc
ディレクトリを作成し、そこにすべての単一のビデオを保存します。
チャンネルから1つ以上の動画をダウンロードするときは、そのチャンネル専用のディレクトリを作成してください。この場合、チャンネル名はTED Archive
で、ディレクトリ名はTED_Archive
になります。 (bash(またはpython)スクリプトを使用するときのディレクトリナビゲーションとファイルI/Oアクションを簡単にするために、すべてのスペース文字を事前にアンダースコアに置き換えます)。
コメントへの返信@leetbacoon
1440pが使用可能な場合、なぜ1080pコピーが最適と見なされるのでしょうか?そして、なぜ2160pが表示されるのですか?私の側にはそのオプションが表示されません(1440pで上限があります)– leetbacoon
ドキュメントからYou can also use a file extension (currently 3gp, aac, flv, m4a, mp3, mp4, ogg, wav, webm are supported) to download the best quality format of a particular file extension served as a single file
best: Select the best quality format represented by a single file with video and audio.
bestvideo: Select the best quality video-only format
best
のみを選択し、出力形式を指定すると、YouTubeはそのために最適なビデオ+オーディオcomboと考える形式を送信しますフォーマット。これは、いくつかのYouTube内部バランス決定(推測)の対象となる場合があります。
使用経験では、bestvideo+bestaudio
を具体的に指定して、ビデオとオーディオの最高品質をそれぞれ取得し、それらを.mkvコンテナーに結合する必要がありました。
念のためにフォールバック引数として/best
を使用しています。