Scripts não aceita ID de vídeo começando com um hífen

0

Eu tentei dois scripts separados para eliminar todos os comentários de um vídeo do Youtube. Tudo funciona bem, mas houve um problema: o ID do vídeo do Youtube começou com um hiphen, como -FIHqoTcZog não funciona. Eu queria saber se há uma maneira de escapar cada caractere desse ID de interpretação shell, por exemplo, usando como um ID: \-\F\I\H\q\o\T\c\Z\o\g , mas isso não funcionou no meu caso.

Os scripts que usei foram: youtube-comment-downloader e youtube-comment-scraper . Ambos exigem ID de vídeo. Mesmo que seja cercado por aspas simples ou duplas, o ID funciona, mas não funciona se o ID do vídeo começar com um hífen.

O Youtube-dl tinha um problema semelhante antes, mas agora aceita o ID começando com hífen: isso é feito usando a opção --id , ainda assim não funciona no nosso caso, a menos que o hífen seja precedido por -- , tornando o nome do vídeo em --id -- -FIHqoTcZog quando estiver ok ser --id xxxxxxxxxxx em outro caso em que o ID não é iniciado com um hífen.

Existe alguma maneira de meus scripts trabalharem com o ID começando com um hífen, da mesma forma como aconteceu no YouTube? -dl , ou usando outro trabalho?

    
por pigeon 05.03.2018 / 15:29

2 respostas

2

Pergunta relacionada: O que significa “-” (duplo traço)? (também conhecido como "duplo traço nu")

O caracter do hífen não é interpretado pelo seu shell, mas pelo programa / script (seu parser, mais precisamente) que você está usando. É por isso que escapar (no nível do shell) não funciona.

Os programas geralmente reconhecem argumentos com hífen (s) principal (es) como opções , não como operandos . Para interpretar argumentos como -foo como operandos, os programas geralmente seguem uma ou mais destas maneiras:

  • Reconheça o primeiro argumento -- como o marcador de final de opções: program -- -foo
  • Permitir que você transmita operandos como argumentos da opção: program --option -foo
  • Reconhecer operandos de formas alternativas: program prefix-foo

No seu cenário específico:

  • youtube-dl aceita:
    • -- -FIHqoTcZog
    • https://www.youtube.com/watch?v=-FIHqoTcZog
  • youtube-comment-downloader parece aceitar:
    • --youtubeid -FIHqoTcZog
  • youtube-comment-scraper parece aceitar:
    • -- -FIHqoTcZog
    • https://www.youtube.com/watch?v=-FIHqoTcZog
por 05.03.2018 / 21:17
0

Finalmente, encontrei uma solução para o script rascador de comentários do YouTube depois de instalá-lo novamente, de repente, adicionando -- na frente de um ID de vídeo começando com - trabalhado. Esta dica ainda não está disponível em nenhuma de suas documentações. Agora isso funciona: youtube-comment-scraper --output OtherFile -f csv -- -FIHqoTcZog

No outro script, ainda não funciona ainda.

    
por 05.03.2018 / 16:40

Tags