29
avril 2016
Shell Script e Zenity com youtube-dl
Escrito por Mario Medeiros não comentários
Existem diversas formas de se baixar os vídeos do Youtube.
Uma forma que eu me habituei, foi com o youtube-dl (https://rg3.github.io/youtube-dl/).
Também existem versões para Linux, Mac e Ruwindows.
Vamos utilizar o linux. Nas outras plataformas eu ainda não testei.
Fiz os testes no linux mint com ambiente cinnamon.
È utilizado via linha de comandos pelo terminal Linux e existem vários parâmetros para uso do comando.
Tanto no site do projeto quanto no proprio youtube-dl existe o help do comando. Use youtube-dl -help.
Aqui vou mostrar como utilizar de uma forma simples, direta e com um pouco de preguiça também.
Eu preferi baixar o youtube-dl (https://rg3.github.io/youtube-dl/download.html) e seguir as intruções da página.
Segui as instruções do site e só mudei o caminho de destino, que está diferente na minha distro.
sudo wget https://yt-dl.org/downloads/2016.04.24/youtube-dl -O /usr/bin/youtube-dl
sudo chmod a+rx /usr/bin/youtube-dl
Após a instalação conforme instruções do site (que estão acima também), abra o terminal, escolha o diretório e dê o comando básico que é:
youtube-dl <link-do-youtube>
Ele vai baixar o vídeo no diretório atual.
Até aí, nada de mais. Mas abrir o terminal, escolhe um diretório toda vez que quiser baixar o vídeo, não é lá muito prático.
Fiz um shell script que facilita o uso da aplicação e deixei visualmente um pouco mais interessante, usando o zenity.
Zenity é uma biblioteca Gtk+ que pode ser utilizada em conjunto com shell scripts. Foi o que eu fiz aqui.
Para saber mais sobre o Zenity acesse o link do site oficial: https://help.gnome.org/users/zenity/stable/
Existem diversos outros sites sobre o Zenity.
Aqui vamos utilizar de forma mais simples e direta sem muitos recuros ou firulas. É só para facilicar o uso do youtube-dl mesmo.
Fiz o seguinte script e gravei no diretório de scripts. Pode ser em /home/usuario/scripts
Dê um nome qualquer e dê atributos de execução. Pode usar o chmod +x no arquivo.
#!/bin/bash
#
#Autor: Mario Medeiros
#Data: 2016-04-28
#Versão: 0.1
link=$(zenity --title="Youtube Downloader" --text="Baixar Video" --entry)
youtube-dl $link -o '/home/usuario/videos_youtube/%(title)s' | tee >(zenity --progress --title="YouTube Downloader" --text="Baixando" --pulsate)
Execute o arquivo. Por exemplo, supondo que o arquivo tenha o nome downloads_yotube.sh, use assim: ./downloads_yotube.sh
Vai aparecer a caixa de diálogo para inserir o link do vídeo. Copie o link do vídeo e cole no campo da janela e depois clique em OK.
Aguarde a janela de progresso terminar e clique em OK. Pronto, já baixou o vídeo.
Explicando um pouco do script:
Nesse script eu coloquei uma variável link que é o link do video no youtube e adicionei entre parênteses os comandos so zenity para criar as janelas gráficas.
O comando youtube-dl com o parâmetro -o indica onde eu quero gravar o arquivo.
Este parâmetro define vários detalhes como nome do video original e outros. No caso eu usei somente a saída para o local e o título, que é o %(title)s
Para fazer a janela de progresso que fica com a barra pulsando de um lado para outro até o final do download do arquivo, eu coloquei o pipe seguido dos comandos para mostrar a jenela.
No demais é só aguardar baixar o video. Se for no diretório onde será gravado o arquivo, poderá ver o mesmo sendo gravado e aumentando de tamanho.
Pra facilitar eu criei no desktop do cinammon, um lançador de aplicativo. Aí é só dar um clique duplo e pronto, é só usar.
É bem simples, básico, mas atende minha preguiça usual. É possível melhorar o script para mais recurso e facilidades, mas como desta forma me atendeu, vou deixá-lo assim, até surgir alguma necessidade diferente.