it-swarm-ja.com

youtube-dlにプレイリストの作成者を返すようにするにはどうすればよいですか?

使うことができます youtube-dl とともに --dump-jsonオプションとjqは、videoのアップローダーを取得します。

uploader=$(youtube-dl --dump-json "$video_url" | jq -r '.uploader')

同様の方法でプレイリストの作成者を取得する方法はありますか?

youtube-dl -j "$playlist_url"

動画のリストを返しますが、再生リストの作成者に関する情報は返しません。

2
fuumind

@Sethが彼の回答で示唆しているように、私は--skip-downloadおよび--outputオプションを使用できます。少し実験してみると、-outputオプションはjsonデータに追加情報を入れないことがわかりました。ただし、次のようにyoutube-dlを呼び出す:

youtube-dl --skip-download --playlist-end 1 --output '%(playlist_uploader)s/%(title)s.%(ext)s' "$playlist_url"

プレイリストアップローダーの名前でフォルダーを作成します。このフォルダは、次のようにfindコマンドを使用して取得できます。

find . -type d -printf '%[email protected] %p\n' | sort -n | tail -1 | cut -f2- -d" "

this 回答 質問 at stackoverflow.com で提案されているように。これは@Sethが提案するものよりもさらに回り道ですが、私の問題は解決します。

2
fuumind

やや回りくどいですが、サポートされている変数のように見えるので、出力名などに含めることができます。

Readme

  • 再生リスト(文字列):動画を含む再生リストの名前またはID
  • playlist_index(数値):再生リストの全長に応じて先行ゼロが埋め込まれた再生リスト内の動画のインデックス
  • プレイリストID(文字列):プレイリスト識別子
  • プレイリストタイトル(文字列):プレイリストタイトル
  • playlist_uploader(文字列):プレイリストアップローダーのフルネーム
  • playlist_uploader_id(文字列):プレイリストアップローダーのニックネームまたはID

--external-downloaderを使用すると、スクリプトを使用できる場合があります。出力によっては、--skip-downloadまたは--simulateを使用できる場合もあります。理論では、-oの変数を使用して、それをjsonに含める必要があります。

0
Seth