Scrips는 하이픈으로 시작하는 동영상 ID를 허용하지 않습니다.

Scrips는 하이픈으로 시작하는 동영상 ID를 허용하지 않습니다.

나는 Youtube 비디오의 모든 댓글을 스크랩하기 위해 두 가지 별도의 스크립트를 시도했습니다. 모든 것이 잘 작동하지만 문제가 있습니다. YouTube 동영상 ID가 -FIHqoTcZog작동하지 않는 것처럼 hihen으로 시작합니다. ID: 로 사용하는 것처럼 쉘 해석에서 ID의 모든 문자를 이스케이프 처리하는 방법이 있는지 궁금합니다. \-\F\I\H\q\o\T\c\Z\o\g하지만 제 경우에는 작동하지 않습니다.

내가 사용하는 스크립트는 다음과 같습니다.유튜브 댓글 다운로더그리고 YouTube 댓글 스크레이퍼. 둘 다 비디오 ID가 필요합니다. ID는 작은따옴표나 큰따옴표로 묶인 경우에도 작동하지만 동영상 ID가 하이픈으로 시작하는 경우에도 작동하지 않습니다.

YouTube-dl이전에도 비슷한 질문이 있었지만 이제는 하이픈으로 시작하는 ID를 허용합니다. 이는 옵션을 사용하여 수행되었지만 --id우리의 경우 앞에 하이픈이 없으면 여전히 작동하지 않으므로 --비디오 이름이 하이픈으로 시작하지 않는 다른 사용 ID에 --id -- -FIHqoTcZog사용될 수 있습니다 .--id xxxxxxxxxxx

스크립트에서처럼 하이픈으로 시작하는 ID를 사용하도록 할 수 있는 방법이 있나요?YouTube-dl상황에 따라 다르거나 다른 작업 환경을 사용하시겠습니까?

답변1

관련 질문: "--"(이중 대시)은(는) 무슨 뜻인가요? ('네이키드 더블 대시'라고도 함)


하이픈은 쉘에 의해 해석되지 않고 사용 중인 프로그램/스크립트(보다 정확하게는 해당 파서)에 의해 해석됩니다. 이것이 (셸 수준에서) 이스케이프 처리가 작동하지 않는 이유입니다.

프로그램은 일반적으로 앞에 하이픈이 있는 인수를 다음과 같이 인식합니다.옵션, 아무것도하지 마세요피연산자. 인수를 피연산자로 해석하기 위해 -foo프로그램은 일반적으로 다음 중 하나 이상을 따릅니다.

  • 첫 번째 --인수를 옵션 태그의 끝으로 인식합니다.program -- -foo
  • 피연산자를 옵션 인수로 전달할 수 있습니다.program --option -foo
  • 다른 방법으로 피연산자를 식별합니다.program prefix-foo

특정 시나리오에서:

  • youtube-dl수용하다:
    • -- -FIHqoTcZog
    • https://www.youtube.com/watch?v=-FIHqoTcZog
  • youtube-comment-downloader받아들이는 것 같습니다 :
    • --youtubeid -FIHqoTcZog
  • youtube-comment-scraper받아들이는 것 같습니다 :
    • -- -FIHqoTcZog
    • https://www.youtube.com/watch?v=-FIHqoTcZog

답변2

마침내 스크립트에 대한 해결책을 찾았습니다.YouTube 댓글 스크레이퍼다시 설치한 후 갑자기 --비디오 ID 앞에 로 시작하는 것을 추가했습니다 -. 이 팁은 아직 어떤 문서에서도 제공되지 않습니다. 이제 이것이 작동합니다: youtube-comment-scraper --output OtherFile -f csv -- -FIHqoTcZog

다른 스크립트에서는 여전히 작동하지 않습니다.

관련 정보