私は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