youtube-dl; Como baixar apenas a lista de reprodução, não os arquivos nela

0

Tentando obter apenas o conteúdo da lista de reprodução (deve ter mais de 600 entradas) de um URL:

youtube-dl -i -v --flat-playlist --skip-download https://www.youtube.com/watch?v=CNotezuR73g&list=PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr

que, de acordo com a página do manual, deve listar as entradas da lista de reprodução, evitando o download de arquivos.

Em vez disso, trava, depois de produzir esta saída:

~ $ youtube-dl -i -v --flat-playlist --skip-download https://www.youtube.com/watch?v=CNotezuR73g&list=PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr  
[1] 4531  
~ $ [debug] System config: []  
[debug] User config: []  
[debug] Custom config: []  
[debug] Command-line args: ['-i', '-v', '--flat-playlist', '--skip-download', 'https://www.youtube.com/watch?v=CNotezuR73g']  
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8  
[debug] youtube-dl version 2018.07.10  
[debug] Python version 3.6.6 (CPython) - Linux-4.17.6-1-ARCH-x86_64-with-arch  
[debug] exe versions: ffmpeg 4.0.1, ffprobe 4.0.1, rtmpdump 2.4  
[debug] Proxy map: {}  
[youtube] CNotezuR73g: Downloading webpage  
[youtube] CNotezuR73g: Downloading video info webpage  
[debug] Default format spec: bestvideo+bestaudio/best  

Como devo fazer isso?

    
por user985675 20.07.2018 / 00:11

3 respostas

1

Parece que você não está citando o URL. Sempre cite URLs. Em qualquer sistema operacional.

No seu exemplo, o problema é claramente visível:

~ $ youtube-dl -i -v --flat-playlist --skip-download https://www.youtube.com/watch?v=CNotezuR73g&list=PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr
[1] 4531

[1] 4531 significa que um trabalho (ID 1) foi iniciado e está sendo executado com o PID 4531.

Esta linha de comando é mais ou menos equivalente a:

youtube-dl -i -v --flat-playlist --skip-download https://www.youtube.com/watch?v=CNotezuR73g &
list=PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr

Oe comercial no final significa que a linha 1 será executada em segundo plano. Ele ainda estará conectado ao seu shell, então você verá sua saída. Provavelmente não está pendurado, acabou de terminar: é apenas um link para um vídeo depois de tudo.

A linha 2 é uma atribuição variável no Bash. Isso definirá uma variável chamada list , se ainda não existir. Pode ser usado assim:

~ $ echo $list
PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr

A linha de comando correta que você deseja usar é:

youtube-dl -i -v --flat-playlist --skip-download "https://www.youtube.com/watch?v=CNotezuR73g&list=PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr"
    
por 18.09.2018 / 12:01
1

Você leu a página wysiwig sugerida em seu comentário? ( obrigado @wysiwig! )

Listar playlist do YouTube com o youtube-dl

De qualquer forma, aqui vou tentar explicar o que você pode fazer (extraído do site anterior)

Tente usar este comando:

youtube-dl -j --flat-playlist "https://<yourYoutubePlaylist>" | jq -r '.id' | sed 's_^_https://youtu.be/_' > result.log

Isso produzirá uma saída semelhante a esta em result.log:

https://youtu.be/0gvUCLL-UGE
https://youtu.be/CPV7zcUy4J0
https://youtu.be/4wyZNwIrH9I
...

que deve ser o que você precisa (uma lista de links discretos para vídeos do YT).

Explicação do comando Com a opção -j , o youtube-dl produzirá uma saída JSON que contém todas as informações sobre o link que você passa (uma lista de reprodução, neste caso).

Essa saída JSON é passada para o processador jq JSON (você precisa instalá-lo antes consulte o site do JQ ) pesquisando para todas as chaves "id" contidas na saída JSON (0gvUCLL-UGE, CPV7zcUy4J0,4wyZNwIrH9I, ...). Em seguida, passamos esses "ids" para sed , que prefixarão cada um deles com https://youtu.be/ , dando o resultado mostrado anteriormente.

Nota 1: Para instalar o JQ, você pode simplesmente usar: sudo apt-get install jq

Nota 2: esta abordagem funciona apenas para o YouTube .

    
por 18.09.2018 / 11:44
0
O método

@wysiwig produz saída no linux, mas não o que eu procurava:

$ youtube-dl --flat-playlist --skip-download https://www.youtube.com/playlist?list=PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr  

Saída:

[youtube:playlist] PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr: Downloading webpage
[download] Downloading playlist: Full Length Arthouse Movies
[youtube:playlist] PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr: Downloading page #1
[youtube:playlist] PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr: Downloading page #2
[youtube:playlist] PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr: Downloading page #3
[youtube:playlist] PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr: Downloading page #4
[youtube:playlist] PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr: Downloading page #5
[youtube:playlist] PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr: Downloading page #6
[youtube:playlist] playlist Full Length Arthouse Movies: Downloading 636 videos
[download] Downloading video 1 of 636
[download] Downloading video 2 of 636
[download] Downloading video 3 of 636
...

O que eu realmente queria da lista de reprodução são os nomes dos vídeos, para que eu possa escolher apenas aqueles que eu quero baixar, com os quais eu obtenho:

$ youtube-dl -i --get-filename --skip-download https://www.youtube.com/playlist?list=PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr  

Saída:

The Waiters (full length MOVIE, entire feature film, full film) _watch full movies for free-CNotezuR73g.mp4
Malcolm X (MORGAN FREEMAN, Full Movie, Englisch, Film in Full Length) _watch full movies for free-3C8j1C7HMj8.mp4
The Arizona Kid - Western, Full Movie, Full Length Feature Film starring ROY ROGERS, Classic Movies-8McZ6G2Uud8.mp4
Desperado Man aka Sagebrush Trail (Western Movie, Full Length Movie, Feature Film, Classic Movie)-7udmB5M6IIE.mp4
...

    
por 20.07.2018 / 21:40