Você pode baixar vídeos e / ou apenas o áudio e assisti-los / ouvi-los 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 fazer o download de vídeos, basta fornecer o URL da página em que você deseja o vídeo e o script faz 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
para assisti-los 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 quero assistir a esses vídeos enquanto eles são transmitidos & em ASCII
Encontrei este artigo do blog intitulado: No ascii, youtube e soltando que demonstra o método que discuti na sala de bate-papo, usando principalmente youtube-dl
como "backend" 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 que está sendo baixado por youtube-dl
é redirecionado via STDOUT acima, -o -
. Há uma demonstração do efeito aqui .
Comainstalaçãodebibliotecasadicionais,ovídeoASCIIpodesermelhoradoaindamais.
OK, mas eu quero o vídeo no meu terminal real?
Eu encontrei este truque que permite que o vídeo seja reproduzido em um xterm
no O'Reilly articulado intitulado: Assista a vídeos em ASCII Arte .
$ xterm -fn 5x7 -geometry 250x80 -e "mplayer -vo aa:driver=curses j.mp4
Os resultados acima resultam em uma janela xterm
sendo aberta onde o vídeo é reproduzido.
Entãoeupensei,porquenãocolocaramanteigadeamendoimeochocolatejuntosassim:
$xterm-fn5x7-geometry250x80-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 possível. A janela aparece e começa a tocar, mas depois se fecha. Eu vejo o vídeo por alguns breves segundos e depois nada.
Talvez o texto acima o aproxime da sua solução definitiva, ou talvez seja necessário ajustar um pouco as opções.
Bibliotecas adicionais
Se você tiver libcaca
instalado (a versão colorida de aalib
) e reduzir o tamanho da fonte em gnome-terminal
para algo realmente pequeno, como digamos 3, o comando a seguir exibirá um vídeo ASCII com muito melhor aparência diretamente dentro do terminal:
$ CACA_DRIVER=ncurses mplayer -vo caca video.mp4
Terminais
Parecequeaescolhadoterminalpodefazerumgrandenegóciosemplayer
podetocardiretamentedentrodoterminalouseabreumajanelaseparada.Ocachetambémemmplayer
fezumagrandediferençaempoderjogardiretamenteemalgunsterminais.
Comessecomando,pudereproduziremterminator
,pelomenosnoprimeiro1/4dovídeoantesdesercortado:
$youtube-dlhttp://www.youtube.com/watch?v=OC83NA5tAGE-o-|\mplayer-cache32767-voaa:driver=curses-
Aversãocoloridausouestecomando:
$youtube-dlhttp://www.youtube.com/watch?v=OC83NA5tAGE-o-|\CACA_DRIVER=ncursesmplayer-cache64000-vocaca-
Essesmesmoscomandospodemserreproduzidosemgnome-terminal
&xterm
também.
NOTA: Isso é (da esquerda para a direita) xterm
, terminator
, gnome-terminal
e terminology
.