Youtube-dlを使用して、YouTubeからファイルをダウンロードします。複数のファイルをダウンロードしようとしましたが、うまくいきません。ビデオをダウンロードするたびに、複数のターミナルを開き、新たに起動する必要があります。
一度にすべてのURLに言及するだけで、単一のターミナルウィンドウで複数のファイルをダウンロードできますか? Ubuntu 12.04 64ビットを使用します。
すべてのビデオが同じプレイリストまたは同じチャンネルにある場合、次のショートカットを使用して時間を節約できます。
youtube-dl -f FORMAT -ciw -o "%(title)s.%(ext)s" -v <url-of-playlist>
...ここで、<url-of-playlist>
はプレイリストのURLに置き換えられ、FORMAT
を使用可能なビデオ形式(18
など)に置き換えます。 -F
オプションを使用して、次のようなすべての有効な形式を表示できます。
youtube-dl -F 'http://www.youtube.com/some-alphanumeric-string'
youtube-dl -f FORMAT -ci --playlist-start NUMBER --playlist-end NUMBER <url-of-playlist>
...ここで、<url-of-playlist>
はプレイリストのURLに置き換えられ、FORMAT
を使用可能なビデオ形式に置き換えます。たとえば、18
、およびNUMBER
はビデオの番号です。プレイリストでダウンロードを開始/終了します。
youtube-dl -f FORMAT -ciw -o "%(title)s.%(ext)s" -v <url-of-channel>
...ここで、<url-of-channel>
はチャネルのURLに置き換えられ、FORMAT
は18
などの使用可能なビデオ形式に置き換えられます。
まず、ダウンロードするYouTubeの動画のURLのリストを含むテキストファイルであるバッチファイルを作成します。 URLは、各行に1つのURLのみを含むリストに配置し、リスト内の各URLに新しい行を配置する必要があります。 batch-file.txtのように覚えやすい名前でバッチファイルを保存します。複数のファイルがすべてYouTubeの同じプレイリスト、チャンネル、またはユーザーWebページにある場合、次のコマンドを実行して、そのページ上のすべてのリンクを含むリストを含むテキストファイルを生成できます。
Sudo apt install jq
youtube-dl -j --flat-playlist "https://<yourYoutubeWebpage>" | jq -r '.id' | sed 's_^_https://youtu.be/_' > batch-file.txt
ターミナルから実行:
youtube-dl -ct --simulate --batch-file='/path/to/batch-file.txt'
これは基本的なコマンドですが、ダウンロードしたい動画の形式を追加する必要もあります。追加しないと、不要な形式の動画をダウンロードすることになります。そのため、まずダウンロードをシミュレートして、必要な形式が利用可能かどうかを確認します。
youtube-dl -ct -f 34 --simulate 'http://www.youtube.com/some-alphanumeric-string'
ビデオ形式が使用できない場合は、requested format not available
というエラーメッセージが表示されます。ビデオ形式が利用可能な場合、--simulate
オプションを使用してもエラーメッセージは表示されません。 -Fオプションを追加して、次のようなすべての有効な形式を表示することもできます。
youtube-dl -F 'http://www.youtube.com/some-alphanumeric-string'
3番目のコマンドでは、一般的なflv 360pビデオ形式を使用しました。-f 34
。 -f 35
を使用してflv 480pビデオ形式を試すことをお勧めします。したがって、コマンドに必要なビデオ形式を追加すると、コマンドは次のようになります。
youtube-dl -ciw -o "%(title)s.%(ext)s" --batch-file='/path/to/batch-file.txt'
注:
最後のコマンドに--simulate
オプションを追加しなかったため、このコマンドは実際に実行されます。
間にスペースを入れて、URLを次々に配置できます。 Youtube-dlはそれらを順次ダウンロードします。これは、バッチファイルを作成するよりも少し簡単です。
--helpがyoutube-dl --help Usage: youtube-dl [options] url [url...]
と言うことに注意してください
サンプル入力:
youtube-dl http://www.youtube.com/watch?v=fqULJBBEVQE http://www.youtube.com/watch?v=vDbbz-BdyYc http://www.youtube.com/watch?v=OrIFaWJ9Glo
サンプル出力:
[youtube] Setting language
[youtube] fqULJBBEVQE: Downloading video webpage
[youtube] fqULJBBEVQE: Downloading video info webpage
[youtube] fqULJBBEVQE: Extracting video information
[download] Destination: Web Components - A Tectonic Shift for Web Development - Google I_O 2013-fqULJBBEVQE.mp4
[download] 100% of 238.14MiB in 36:54
[youtube] vDbbz-BdyYc: Downloading video webpage
[youtube] vDbbz-BdyYc: Downloading video info webpage
[youtube] vDbbz-BdyYc: Extracting video information
[download] Paul Irish on Web Application Development Workflow-vDbbz-BdyYc.mp4 has already been downloaded
[youtube] OrIFaWJ9Glo: Downloading video webpage
[youtube] OrIFaWJ9Glo: Downloading video info webpage
[youtube] OrIFaWJ9Glo: Extracting video information
[download] Got server HTTP error. Retrying (attempt 1 of 20)...
[download] Destination: Single Page Web Applications - JavaScript End-to-End (The Hard Stuff)-OrIFaWJ9Glo.mp4
[download] 100% of 553.10MiB in 42:17
複数のビデオをダウンロードするには、この構造を使用できます。 @coreybの応答に似ていますが、bashの他の場所(エコーなど)で使用できる点が追加されています。次の2つの方法があります。
ブレース
youtube-dl -f FORMAT {url1,url2,url...}
最後の引数なしで最後のコマンドを繰り返す
youtube-dl -f FORMAT url1; !:- url2; !:-url...
ステップ1:デスクトップに移動して、list
(またはその他の名前)というテキストドキュメントを作成します。ファイルをファイルにダウンロードする場合は、URLを1行に1つずつコピーして貼り付けます
ステップ2:ターミナルを開いてデスクトップに移動
cd Desktop
ステップ3:リストのファイルをダウンロードするには、ファイルに名前を付けた場合は(list
を適宜置換します他のもの)
youtube-dl -a list
YouTubeをダウンロードするにはchannel
このコマンドを実行する
youtube-dl -citk -format mp4 -yes-playlist VIDEO_PLAYLIST_LINK
-c
部分的にダウンロードしたファイルを再開-i
はエラーを無視します。-t
は、ビデオタイトルをファイル名として使用します。-k
は、後処理が終了した後、ビデオをディスクに保持します。--format mp4
は、ビデオファイルをMP4ファイルとして保存します。--yes-playlist
は、後続のURLがビデオプレイリストを指していることを確認します。最も簡単な解決策は、このようなbashスクリプトを作成することです
#!/bin/bash
terminal=`tty`
exec < ~/Documents/youtubevideolinks.txt
while read -r line
do
cd ~/Desktop/TilakDa/
youtube-dl -f 18 "$line"
done
exec < "$terminal"
ドキュメントフォルダーのそのtxtファイル内のビデオリンクを新しい行の各ビデオURLにコピーして貼り付け、このスクリプトを実行します動画を1つずつダウンロードしますデフォルトでは、-f 18
オプションは360p動画用です
複数のビデオURLがある場合は、新しいURLを作成するか、既存のURLを使用して、1つのプレイリストに追加します。
次に、以下のコマンドを使用します。
youtube-dl -f FORMAT --yes-playlist [url-of-playlist]
URLがビデオとプレイリストを参照している場合、オプション--yes-playlist
はプレイリストをダウンロードします。
これは、YouTubeからリンクされたビデオがあるWebサイトから数百のビデオをダウンロードするという目的のために見つけた最も簡単で迅速なオプションです。
Bashスクリプトで試してください:
while read LL ; do youtube-dl "$LL" ; done < your_file
コマンドを入力してから&&
と入力し、次のようなコマンドを入力します。
youtube-dl--add-metadata -xic http://(the url) && youtube-dl--add-metadata -xic http://(the url)