youtube-dl設定ファイルでヘッダを設定する正しい方法は何ですか

youtube-dl設定ファイルでヘッダを設定する正しい方法は何ですか

文書を確認しました。

--add-header FIELD:VALUE         Specify a custom HTTP header and its value,
                                 separated by a colon ':'. You can use this
                                 option multiple times

しかし、私は知らないし、おそらくそうではありません。他の人もいます。

それでホームページにこんな質問をしました。サポートページ。この答えはせいぜいあいまいです。しかし、ヒントは次のとおりです。

シェルに関するよくある質問をお読みください。

もしそうなら、ファイルにヘッダーを設定する正しい方法は何ですかyoutube-dl.conf

--add-header Accept-Encoding:"identity;q=1, *;q=0"

または、

--add-header 'Accept-Encoding: identity;q=1, *;q=0'

または、

--add-header "Accept-Encoding: identity;q=1, *;q=0"

答え1

コードを深く掘り下げると(経験的には確認されません)、構成ファイルは次のように解析されます。_readOptionsどの電話compat_lex_splitそれは関数を呼び出しますshlex.splitPOSIXモードのPython標準ライブラリから。これはシェル引用の近似値です(そしてシェル文書を読むことが誤解を招くのと同じくらい異なります)。簡単に言えば、ルールは次のようになります。

  • 引用符で囲まれていないコメントは、行の#最後まで実行されるコメントを開始します。
  • 引用符のないスペースは単語を区切ります。
  • バックスラッシュは次の文字を表し、バックスラッシュ+文字は2番目の文字を表します。
  • 一重引用符内の'…'すべての文字は文字通りと見なされます。
  • 二重引用符内で、"…"バックスラッシュはバックスラッシュまたは二重引用符がバックスラッシュまたは二重引用符の場合にのみ次の文字を引用し、他のすべての内容は文字通りと見なされます。

ここにいくつかの例があります。

  • foo '' barfoo、空の単語、列
  • foo#barfoo
  • "foo bar"bazfoo barbaz
  • "\f\\"\f\
  • '\f\\'\f\\
  • \f\\f\

そして、以下はすべて同じです。

--add-header Accept-Encoding:"identity;q=1, *;q=0"
--add-header Accept-Encoding:'identity;q=1, *;q=0'
--add-header Accept-Encoding:identity;q=1,\ *;q=0
--add-header 'Accept-Encoding: identity;q=1, *;q=0'
--add-header "Accept-Encoding: identity;q=1, *;q=0"

関連情報