web-dev-qa-db-ja.com

youtube-dlを使用して複数のファイルをダウンロードする

Youtube-dlを使用して、YouTubeからファイルをダウンロードします。複数のファイルをダウンロードしようとしましたが、うまくいきません。ビデオをダウンロードするたびに、複数のターミナルを開き、新たに起動する必要があります。

一度にすべてのURLに言及するだけで、単一のターミナルウィンドウで複数のファイルをダウンロードできますか? Ubuntu 12.04 64ビットを使用します。

43
Mecha-Unix

ショートカット

すべてのビデオが同じプレイリストまたは同じチャンネルにある場合、次のショートカットを使用して時間を節約できます。

プレイリスト

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に置き換えられ、FORMAT18などの使用可能なビデオ形式に置き換えられます。

同じプレイリストまたはチャンネルにない動画

まず、ダウンロードする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オプションを追加しなかったため、このコマンドは実際に実行されます。

53
karel

間にスペースを入れて、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
18
coreyb

複数のビデオをダウンロードするには、この構造を使用できます。 @coreybの応答に似ていますが、bashの他の場所(エコーなど)で使用できる点が追加されています。次の2つの方法があります。

ブレース

youtube-dl -f FORMAT {url1,url2,url...}

最後の引数なしで最後のコマンドを繰り返す

youtube-dl -f FORMAT url1; !:- url2; !:-url...
3
Xui

ステップ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がビデオプレイリストを指していることを確認します。
3
Ahmed Ismail

最も簡単な解決策は、このような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動画用です

3

複数のビデオURLがある場合は、新しいURLを作成するか、既存のURLを使用して、1つのプレイリストに追加します。

次に、以下のコマンドを使用します。

youtube-dl -f FORMAT --yes-playlist [url-of-playlist]

URLがビデオとプレイリストを参照している場合、オプション--yes-playlistはプレイリストをダウンロードします。

これは、YouTubeからリンクされたビデオがあるWebサイトから数百のビデオをダウンロードするという目的のために見つけた最も簡単で迅速なオプションです。

3
user669330

Bashスクリプトで試してください:

while read LL ; do youtube-dl "$LL" ; done < your_file
1
totolezero

コマンドを入力してから&&と入力し、次のようなコマンドを入力します。

youtube-dl--add-metadata -xic http://(the url) && youtube-dl--add-metadata -xic http://(the url) 
1
user859198