youtube-dlを使用してYouTubeビデオからすべてをダウンロードする


16

YouTubeビデオ(たとえば、これ)からすべて(字幕、カード、タグ、注釈、サムネイルなど(および明らかにオーディオ付きのビデオ))をダウンロードしたい。

私は使用youtube-dlしていますが、使用するスイッチが圧倒的に多いため、自分のニーズに合ったものを見つけることができないようです。また、品質を損なうことなく、可能な限り最高の品質でビデオ/オーディオをダウンロードしたいと思います。YouTubeではありませんが、長い道のりで旅行している間に視聴できるように、購入した自分のudemyコースの一部もダウンロードしたかったのです。

私はffmpegインストールしました。YouTubeからのロスレスダウンロードにはこれが必要だと聞きましたが、にリンクする方法がわかりませんyoutube-dl

を初めて使用youtube-dlするので、どんな助けでも大歓迎です。

回答:


14

必要な関連オプション:

# Filesystem
--write-annotations
--write-description
--write-info-json

# Thumbnail images
--write-all-thumbnails

# Video format
--format bestvideo+bestaudio/best
--merge-output-format mkv

# 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コースの一部もダウンロードしたかったのです。

記事を読んでください、私は自分のコンピュータにコースをダウンロードすることができますか?

デフォルトでは、完全なコースはコンピューターからダウンロードできません。これは、著作権侵害の懸念から行っています。

Udemyモバイルアプリでいつでもオフラインで視聴できるようにコースを保存できることに注意してください。ビデオ講義をiOSモバイルデバイスにダウンロードする方法については、ここをクリックしてください。Androidデバイスでオフラインで視聴するためにビデオをダウンロードする手順については、ここをクリックしてください


私はffmpegインストールしました。YouTubeからのロスレスダウンロードにはこれが必要だと聞きましたが、にリンクする方法がわかりませんyoutube-dl

youtube-dlavconvデフォルトで使用しますが、代わりに--prefer-ffmpeg使用しffmpegます。とにかく、このオプションは「ロスレスダウンロード」には必要ありません。私が提供した例では、ダウンロードされたすべての形式を単一のmkvファイルにマージするためにyoutube-dlのみ使用さffmpegれました。


これにより、YouTubeの情報が動画に埋め込まれますか?私は正確に私はちょうどそれをダウンロードしますが、残しておきたい、したくないことすべて別々のファイルで、ちょっとそれは:)どのように見えるかのような
leetbacoon

.mkvは、ロスレス動画のデフォルトのコンテナyoutube-dlですか?
leetbacoon

ああ、どうやってビデオをダウンロードしましたか?youtube-dl [youtube-link]
leetbacoon

1
@leetbacoonなるほど。バグレポートを追加します。
nxnev

1
@leetbacoonこの答えを書いたときは逆でした。オプションがyoutube-dlなければ特定のビデオをダウンロードできなかったでしょう--youtube-skip-dash-manifest。そのオプションを編集しました。教えてくれてありがとう。
nxnev

6

ビデオを単にダウンロードするために、これを使用できます:

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

ビデオの品質に関する詳細情報はこちらからもご覧いただけます


4
手動形式選択で何を達成したいですか?youtube-dlデフォルトで利用可能な最高のビデオおよびオーディオ形式を使用します。構成ファイルの別の設定を上書きする場合-f bestvideo+bestaudio/bestは、使用するか(デフォルトと同じ)、構成ファイルを無視します(--ignore-config)。
デビッドフォースター

これについては引用しないでください。ただし、音声付きのロスレスビデオを取得するには、youtube-dl https://www.youtube.com/watch?v=KYBok-XGsKM
leetbacoon

そして、1440pが使用可能な場合、なぜ1080pのコピーが最適であると考えられるのでしょうか?そして、なぜ2160pが表示されるのですか?そのオプションは私の終わりに表示されません(1440pで上限)
-leetbacoon

3

@leetbacoonの一番下のコメント応答を参照してください。(低担当者はまだ泣いています)

注:混乱を避けるために、長いスイッチ名を使用します。使用されるスイッチの多くには、より短いバージョンがあります。ドキュメント:オプションをご覧ください。

注: -視覚的な利便性のために、\スイッチを個別に表示します。すべて\省略できます。使用\する場合は、後にスペース文字がないことを確認してください\


概要: 使用可能な最高のビデオおよびオーディオ品質の単一のビデオファイルをダウンロードするytdlコマンド。ビデオを独自のディレクトリ(ユーザーが指定)に保存します。利用可能なすべてのメタデータをダウンロードし、それぞれをそれぞれのファイル形式に書き込み、同じディレクトリに保存します。ビデオ出力ファイルにビデオメタデータを追加します。

独自のもので置き換えます:

  • 交換する/archive/videos/TED_Archive/スイッチに--download-archiveし、--output任意のディレクトリ・パスで。
  • ストレージパスの例/ archive / videos
  • ビデオリンクの例:https : //www.youtube.com/watch?v=0bFs6ZiynSU
  • チャネルディレクトリの例/ TED_Archive

====

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
    引数:なし
    追加:なりません上書き同じ名前のメタデータファイルを、既存の。
    省略:既存のメタデータファイルを同じ名前で上書きしますが、ビデオファイルは上書きしません。

    • --call-home デバッグのためにytdlサーバーに接続するために使用されます。

      「サーバーに複数のIPがある場合、または検閲が疑われる場合は、-call-homeを追加すると、より多くの診断を取得できます。– ドキュメント:バグ、20180408を取得、

  • --write-info-json
    引数:なし
    出力形式: json;
    情報コンテンツ:ビュー数、いいね、アップロード日、ビデオおよびオーディオ品質情報など(ただし、ビデオテキストの説明(アップローダーによるビデオの下に投稿(2018 youtubeレイアウト)))
    追加:ビデオメタデータを別の.info.jsonファイルに書き込みます。ビデオファイルと同じフォルダに保存されます。
    省略:--add-metadataどちらがビデオメタデータをビデオ出力ファイルに書き込むかには影響しません。

  • --write-description
    引数:なし
    出力形式:プレーンテキスト。
    追加:動画の説明セクションに動画アップローダーが投稿したテキスト(動画(2018 youtubeレイアウト)の下)を別のWrite .descriptionファイルに書き込みます。ビデオファイルと同じフォルダに保存されます。

  • --write-thumbnail使用可能な最高解像度のサムネイル(maxresdefault.jpgyoutubeによって呼び出され.jpgます)をファイルに書き込みます。で指定されたテンプレートに従って名前が変更されました--output。ビデオファイルと同じディレクトリに保存されます。
    引数:なし
    出力形式: JPEGのみ。
    注:youtube-dl --list-thumbnails '<video_url>'特定の動画の利用可能なサムネイルを調査するために使用します(プレイリストリンクでは機能しません)。例:youtube-dl --list-thumbnails 'https://www.youtube.com/watch?v=odwfHu6MDuU'

  • --write-annotationsビデオ注釈を.annotations.xmlファイルに書き込みます。で指定されたテンプレートに従って名前が変更されました--output。ビデオファイルと同じディレクトリに保存されます。
    引数:なし
    出力形式: .xml;

  • --all-subsそれぞれのファイル(例:へのビデオのために、すべてのカスタム作成可能な字幕を書き込みsubtitles.en.vttsubtitles.fr.vttsubtitles.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'
    引数:文字列:拡張子ass、srtまたはbestを
    フォーマットします 出力フォーマット:デフォルト.vtt; または仕様に応じて
    追加:指定されたファイル形式に字幕を書き込みます(例:).srt。ビデオファイルと同じフォルダに保存されます。
    省略:字幕は.vtt
    エラーメッセージとして書き込まれます:使用可能な字幕がない場合、INFOメッセージがstdoutに出力されます-形式:[ffmpeg] There aren't any subtitles to convert
    注:変換は.vtt、ダウンロード後のファイルの後処理ステップとして実行されます。ytdlの実行が予期せず終了した場合、字幕ファイルの一部が変換されない可能性があります(この場合、コマンドを再度実行します)。

  • --add-metadata
    引数:なし
    動作:メタデータをビデオ出力ファイルに書き込みます。
    注:.info.jsonによって生成される必要はありません--write-info-json

  • --embed-subs
    引数:なし
    動作:
    1.字幕をビデオ出力ファイルに書き込みます。
    2. mp4、webmおよびmkvビデオのみ
    エラーメッセージ: 利用可能な字幕がない場合、INFOメッセージがstdoutに出力されます-形式:[ffmpeg] There aren't any subtitles to embed
    注:、 または.vttによって生成される必要はありません--write-sub--write-auto-sub--all-sub

  • --download-archive '<archive_path>/<channel_name>/<channel_name>.ytdlarchive'
    動作:以前にダウンロードしたビデオのリンクを含むテキストファイルを作成するために使用されます。チャンネル全体をダウンロードするときにこれらのビデオをスキップできます。単一のビデオのみをダウンロードする場合は不要です。
    引数:文字列:ビデオアーカイブへのパスの合成、チャンネルにちなんで名付けられたディレクトリ。ファイル名は、チャンネル名と.ytdlarchiveファイル拡張子で構成されます。(.txtでも構いませんが、独自の形式により簡単に区別できます)
    出力形式:プレーンテキスト。行ごとに1つのvideoID
    追加:
    1. ytdlはこのファイルを読み取り、まだダウンロードされていない場合でも、videoIDがリストされているすべての動画を無視してスキップします。
    2.最後にダウンロードしたビデオのvideoIDをこのファイルに自動的に追加します
    ビデオファイルとメタデータファイルが存在する場合、ytdlはそれらを再度ダウンロードします。

  • --format ''
    引数:推奨文字列:bestvideo+bestaudio/best最高のビデオとオーディオ品質の組み合わせを確保するため。
    追加:ビデオ品質とオーディオ品質、およびそれらの組み合わせ、およびフォールバック品質を完全に制御
    省略:デフォルトyoutube-dl will guess it for you by defaultドキュメント
    注:ドキュメントを参照:形式選択の例

  • --merge-output-format '<video_format>'
    引数:ビデオファイル形式。(例:mp4、mkv、3gpなど)
    追加:ビデオファイル形式を指定できます
    省略:デフォルトyoutube-dl will guess it for you by default- ドキュメント
    注:ドキュメント:形式の選択を参照してください

便利なコマンド:

注: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が送信された場合、エラーメッセージが標準出力に出力されます-形式:ERROR: u'' is not a valid URL. Set --default-search "ytsearch" (or run youtube-dl "ytsearch:" ) to search YouTube


ストレージの推奨事項:

  1. miscビデオアーカイブにディレクトリを作成し、すべての単一のビデオをそこに保存します。

  2. チャンネルから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はその形式に最適なビデオとオーディオのコンボと思われる形式を送信します。これは、いくつかのYouTube内部バランス決定(推測)の対象となる場合があります。


私の使用経験では、bestvideo+bestaudio利用可能な最高品質のビデオとオーディオをそれぞれ取得し、それらを.mkvコンテナーに結合するように具体的に指定する必要がありました。


私は/best念のためフォールバック引数として使用します。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.