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

하지만 나는 모르겠고 아마 그러지 않을 것이다.다른 사람들도 좀 있어.

그래서 홈페이지에 이런 질문을 했는데요.지원 페이지. 이 대답은 기껏해야 모호합니다. 그러나 팁은 다음과 같습니다.

쉘에 대한 FAQ를 읽어보세요.

그렇다면 파일에 헤더를 설정하는 올바른 방법은 무엇입니까 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 표준 라이브러리에서. 이는 쉘 인용의 근사치입니다(그리고 쉘 문서를 읽는 것이 오해의 소지가 있을 정도로 다릅니다). 간단히 말해서 규칙은 다음과 같습니다.

  • 인용되지 않은 주석은 #줄 끝까지 실행되는 주석을 시작합니다.
  • 따옴표가 없는 공백은 단어를 구분합니다.
  • 백슬래시는 다음 문자를 나타내고, 백슬래시+ 문자는 두 번째 문자를 나타냅니다.
  • 작은따옴표 안의 '…'모든 문자는 문자 그대로 간주됩니다.
  • 큰따옴표 내에서 "…"백슬래시는 백슬래시나 큰따옴표가 백슬래시나 큰따옴표인 경우에만 다음 문자를 인용하고 다른 모든 내용은 문자 그대로 간주됩니다.

여기 몇 가지 예가 있어요.

  • 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"

관련 정보