Scrips はハイフンで始まる動画 ID を受け付けません。

Scrips はハイフンで始まる動画 ID を受け付けません。

私はYoutubeビデオのすべてのコメントをスクラップするために2つの別々のスクリプトを試しました。すべてがうまくいきますが、問題があります。 YouTubeの動画IDが-FIHqoTcZog機能しないかのようにhihenで始まります。 ID:として使用するのと同じように、シェル解析でIDのすべての文字をエスケープする方法があるかどうか疑問に思います。\-\F\I\H\q\o\T\c\Z\o\gしかし、私の場合は動作しません。

私が使用するスクリプトは次のとおりです。YouTubeのコメントダウンローダーそして YouTubeコメントスクレーパー。どちらもビデオIDが必要です。 IDは一重引用符または二重引用符で囲んでも機能しますが、ビデオIDがハイフンで始まっても機能しません。

YouTube-dl以前も同様の質問がありましたが、今はハイフンで始まるIDを受け入れます。これはオプションを使用して行われましたが、以前は--idハイフンがないとまだ機能しないため、--ビデオ名がハイフンで始まらない他の使用IDに--id -- -FIHqoTcZog使用できます。--id xxxxxxxxxxx

スクリプトのようにハイフンで始まるIDを使用する方法はありますか?YouTube-dl状況によって異なるか、異なる作業環境を使用しますか?

ベストアンサー1

関連質問: "--"(二重ダッシュ) とはどういう意味ですか? (「ネイキッドダブルダッシュ」とも呼ばれる)


ハイフンはシェルによって解釈されず、使用中のプログラム/スクリプト(より正確には対応するパーサー)によって解釈されます。これが(シェルレベルで)エスケープ処理が機能しない理由です。

プログラムは通常、前にハイフンがある引数を次のように認識します。オプション、何もしないでくださいオペランド。引数をオペランドとして解釈するために、-fooプログラムは通常次のうちの1つ以上に従います。

  • 最初の--引数をオプションタグの末尾として認識します。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

おすすめ記事