Skip to content

Instantly share code, notes, and snippets.

@terroo
Last active September 18, 2018 00:25
Show Gist options
  • Save terroo/8d238de6154c77f78a912d80ac0e58a4 to your computer and use it in GitHub Desktop.
Save terroo/8d238de6154c77f78a912d80ac0e58a4 to your computer and use it in GitHub Desktop.
Como Criar um Script para obter dados do Youtube
#!/bin/bash
# author: Marcos Oliveira <terminalroot.com.br>
# license: MIT
# version: 1.0
function get_dados_youtube() {
page_video_youtube=$(mktemp)
page_canal=$(mktemp)
# A variável 1 é um parâmetro de posição
wget "$1" -O $page_video_youtube 2>/dev/null
id_do_canal=$(cat "$page_video_youtube" | grep 'channelId' | sed 's/.*\=\"//' | sed 's/\".*//')
wget "https://www.youtube.com/channel/$id_do_canal" -O "$page_canal" 2>/dev/null
# Filtramos o título do canal, que está no HTML armazenado em page_canal
titulo_do_canal=$(sed -n '/title/{p; q;}' "$page_canal" | sed 's/<.*>//g' | sed 's/^ //')
# Filtramos o número de inscritos, título do víde, visualizações e gosteis ou não com sed e awk
num_inscritos=$(cat "$page_canal" | grep yt-subscription-button-subscriber-count-branded-horizontal | sed 's/<[^>]*>/ /g' | awk '{print $NF}')
titulo_video=$(cat $page_video_youtube | sed '/title/{p; q;}' | grep title | sed 's/<[^>]*>//g' | uniq | sed 's/...YouTube.*//')
views_video=$(cat $page_video_youtube | grep watch-view-count | sed 's/<[^>]*>//g')
likes=$(cat $page_video_youtube | grep like-button-renderer-like-button-unclicked | sed 's/<[^>]*>//g ;s/ //g')
dislikes=$(cat $page_video_youtube | grep like-button-renderer-dislike-button-unclicked | sed 's/<[^>]*>//g ;s/ //g')
echo "Nome do canal: $titulo_do_canal"
echo "Número de inscritos: $num_inscritos"
echo "Título do vídeo: $titulo_video"
echo "Visualizações: $views_video"
echo "Gosteis: $likes"
echo "Não gosteis: $dislikes"
}
get_dados_youtube "$1"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment