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

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

[ Hits: 1.311 ]

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

Wallpapers slideshow

WPS Office Suite para Linux - Desastrosa primeira impressão

Atualizar IP no vsftpd.conf

backup via ftp em formato tgz

Slackware Current Pós Instalação Zero Bala


  

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