Como ver/ouvir vídeo/áudio via Terminal de modo prático

Publicado por Sidnei Serra (última atualização em 28/07/2025)

[ Hits: 81 ]

Homepage: https://www.youtube.com/channel/UCRgokKtNlttdmg2RJEa2VYw

Download escolha.sh




Tendo como base o script postado pelo Ênio Ferlin (blog: http://lattes.cnpq.br/0097812690686190) através de sua postagem em https://www.vivaolinux.com.br/dica/Procurando-vdeos-de-YouTube-pelo-terminal-e-assistindo-via-mpv-20... dei um upgrade no mesmo onde você escolhe a resolução do vídeo e se quer ver ou apenas ouvir, com as escolhas sendo mostradas em H264 e AAC para facilitar ao máximo o desempenho em máquinas mais modestas que podem ficar sobrecarregadas com AV1, VP9 e Opus.

O uso é como o original do autor (sugiro a leitura em caso de erro): o nome aqui é "escolha.sh", salve ou coloque o arquivo em /usr/local/bin/ e, no Terminal, digite sem as aspas "escolha.sh palavras a procurar". Ou seja, se você quiser procurar por vídeos/áudios que tenham "jogo seleção brasileira feminina" seria:

escolha.sh jogo seleção brasileira feminina

vai aparecer as opções de áudio e vídeo, escolha a desejada e aguarde um pouco. As opções encontradas (no script, 8 delas mas podem ser aumentadas) listarão a sua procura e depois é só escolher a desejada. Dá até pra procurar por playlists.

Pacotes para instalar:
jq
mpv
yt-dlp
ffmpeg

  



Esconder código-fonte

#!/bin/bash

tempfile=$(mktemp)
youtube_dl_log=$(mktemp)

# Escolher resolução
echo "Escolha a qualidade desejada:"
echo "1) 360p"
echo "2) 480p (padrão compatível: AVC1 + MP4A)"
echo "3) 720p"
echo "4) 1080p"
echo "5) Apenas áudio (MP3/AAC)"
read -rp "Digite o número da opção: " quality_choice

# Definir o formato com base na escolha
case "$quality_choice" in
1) format="bestvideo[height<=360][vcodec^=avc1]+bestaudio[acodec^=mp4a]" ;;
2) format="bestvideo[height<=480][vcodec^=avc1]+bestaudio[acodec^=mp4a]" ;;
3) format="bestvideo[height<=720][vcodec^=avc1]+bestaudio[acodec^=mp4a]" ;;
4) format="bestvideo[height<=1080][vcodec^=avc1]+bestaudio[acodec^=mp4a]" ;;
5) format="bestaudio[acodec^=mp4a]" ;;
*) echo "Opção inválida. Usando 480p como padrão."; format="bestvideo[height<=480][vcodec^=avc1]+bestaudio[acodec^=mp4a]" ;;
esac

query="ytsearch8:$*"
yt-dlp -j "$query" > "$tempfile" 2>"$youtube_dl_log"

if [ ! -s "$tempfile" ]; then
echo "Nenhum resultado encontrado ou erro no yt-dlp:"
cat "$youtube_dl_log"
rm "$tempfile" "$youtube_dl_log"
exit 1
fi

declare -a youtube_urls
declare -a youtube_titles

mapfile -t youtube_titles < <(jq -r '.fulltitle' "$tempfile")
mapfile -t youtube_urls < <(jq -r '.webpage_url' "$tempfile")

for i in "${!youtube_titles[@]}"; do
printf "[%d] %s\n" $((i + 1)) "${youtube_titles[$i]}"
done

while true; do
echo -e "\nDigite o número do vídeo escolhido (ou 'q' para sair):"
read -r input

if [[ "$input" == "q" ]]; then
break
elif [[ "$input" =~ ^[0-9]+$ ]] && (( input >= 1 && input <= ${#youtube_urls[@]} )); then
echo "Iniciando vídeo em mpv com formato: $format"
mpv --ytdl-format="$format" "${youtube_urls[$((input - 1))]}"
break
else
echo "Entrada inválida."
fi
done

rm "$tempfile" "$youtube_dl_log"

Scripts recomendados

Enviar gráficos 3D pela janela de chat no Kopete

Unzip para todos

Instalador de macromedia flash para comps AMD Athlon 86_64

Uma loja de apps por linha de comando

Transformar eBook em Audiobook


  

Comentários

Nenhum coment�rio foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts