Você pode baixar vídeos e / ou apenas o áudio e depois assistir / ouvir usando youtube-dl
. O script é escrito em Python e faz uso de ffmpeg
eu acredito.
$ youtube-dl --help
Usage: youtube-dl [options] url [url...]
Options:
General Options:
-h, --help print this help text and exit
--version print program version and exit
-U, --update update this program to latest version.
Make sure that you have sufficient
permissions (run with sudo if needed)
...
...
Para baixar vídeos, basta fornecer o URL da página em que você deseja que o vídeo e o script façam o resto:
$ youtube-dl https://www.youtube.com/watch?v=OwvZemXJhF4
[youtube] Setting language
[youtube] OwvZemXJhF4: Downloading webpage
[youtube] OwvZemXJhF4: Downloading video info webpage
[youtube] OwvZemXJhF4: Extracting video information
[youtube] OwvZemXJhF4: Encrypted signatures detected.
[youtube] OwvZemXJhF4: Downloading js player 7N
[youtube] OwvZemXJhF4: Downloading js player 7N
[download] Destination: Joe Nichols - Yeah (Audio)-OwvZemXJhF4.mp4
[download] 100% of 21.74MiB in 00:16
Você pode usar vlc
ou mplayer
assistir a eles localmente:
$ vlc "Joe Nichols - Yeah (Audio)-OwvZemXJhF4.mp4"
VLC media player 2.1.5 Rincewind (revision 2.1.4-49-gdab6cb5)
[0x1cd1118] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
Fontconfig warning: FcPattern object size does not accept value "0"
Fontconfig warning: FcPattern object size does not accept value "0"
Fontconfig warning: FcPattern object size does not accept value "0"
Fontconfig warning: FcPattern object size does not accept value "0"
OK, mas eu quero assistir esses vídeos enquanto eles são transmitidos e em ASCII
Eu encontrei este artigo do blog intitulado: No ASCII, youtube e deixar ir, que demonstra o método que discuti na sala de bate-papo, usando principalmente youtube-dl
como o "back-end" que poderia fazer o download do fluxo do YouTube e redirecioná-lo para outro aplicativo.
Este artigo mostra que está sendo feito com mplayer
:
$ youtube-dl http://www.youtube.com/watch?v=OC83NA5tAGE -o - | \
mplayer -vo aa -monitorpixelaspect 0.5 -
O vídeo baixado por youtube-dl
é redirecionado via STDOUT acima -o -
,. Há uma demonstração do efeito aqui .
Com a instalação de bibliotecas adicionais, o vídeo ASCII pode ser aprimorado ainda mais.
OK, mas eu quero o vídeo no meu terminal atual?
Encontrei esse truque que permite que o vídeo seja reproduzido em uma xterm
articulação de O'Reilly intitulada: Assista a vídeos na arte ASCII .
$ xterm -fn 5x7 -geometry 250x80 -e "mplayer -vo aa:driver=curses j.mp4
O resultado acima resulta em uma xterm
janela sendo aberta onde o vídeo é reproduzido.
Então pensei: por que não juntar a manteiga de amendoim e o chocolate assim:
$ xterm -fn 5x7 -geometry 250x80 -e \
"youtube-dl http://www.youtube.com/watch?v=OC83NA5tAGE -o - | \
mplayer -vo aa:driver=curses -"
Isso quase funciona! Não sei por que o vídeo não pode ser reproduzido na janela, mas parece que deveria ser capaz. A janela aparece e começa a tocar, mas depois fecha. Eu vejo o vídeo por alguns breves segundos e depois nada.
Talvez o exposto acima o aproxime da sua solução definitiva ou talvez precise apenas de um pouco de ajustes nas opções.
Bibliotecas adicionais
Se você libcaca
instalou (a versão colorida aalib
) e reduziu o tamanho da fonte gnome-terminal
para algo realmente pequeno, como digamos 3, o comando a seguir exibirá um vídeo ASCII muito mais bonito diretamente no terminal:
$ CACA_DRIVER=ncurses mplayer -vo caca video.mp4
Terminais
Parece que a escolha do terminal pode ser importante para saber se é mplayer
possível jogar diretamente dentro do terminal ou se ele abre uma janela separada. O armazenamento em cache também mplayer
fez uma diferença dramática em poder tocar diretamente nos terminais.
Usando este comando, eu pude reproduzir terminator
, pelo menos nos primeiros 1/4 do vídeo antes de cortar:
$ youtube-dl http://www.youtube.com/watch?v=OC83NA5tAGE -o - | \
mplayer -cache 32767 -vo aa:driver=curses -
A versão colorida usou este comando:
$ youtube-dl http://www.youtube.com/watch?v=OC83NA5tAGE -o - | \
CACA_DRIVER=ncurses mplayer -cache 64000 -vo caca -
Esses mesmos comandos também podem ser reproduzidos no gnome-terminal
& xterm
.
NOTA: É (da esquerda para direita) xterm
, terminator
, gnome-terminal
, e terminology
.