Procurando vídeos de YouTube pelo terminal e assistindo via mpv

Publicado por Enio Ferlin em 28/06/2023

[ Hits: 1.884 ]

Blog: http://lattes.cnpq.br/0097812690686190

 


Procurando vídeos de YouTube pelo terminal e assistindo via mpv



1. Para o funcionamento do script precisaremos dos apps yt-dlp, mpv e jq, que podem ser instalados da seguinte forma:

No Debian:

sudo apt-get install jq yt-dlp mpv

No Fedora:

sudo yum install jq yt-dlp mpv

2. Depois criaremos um arquivo que podemos chamar como quisermos, no meu caso, chamei de "yt":

sudo nano /usr/local/bin/yt

3. Agora só copiar o script abaixo dentro do arquivo:

#!/bin/bash

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

yt-dlp -j "ytsearch8:$*" > $tempfile

while IFS= read -r line
do
    youtube_urls+=("$line")
done < <(cat $tempfile | jq '.webpage_url' | tr -d '"' )

cat $tempfile | jq '.fulltitle, .webpage_url'

while :
do
    echo "Digite o número do vídeo escolhido."
    read i
    if [ ! x"$i" == x"" ]
    then
        # fazer a numeracao mais intuitiva (iniciar do 1 não 0)
        mpv ${youtube_urls[$i - 1]} &
    fi
done

4. Dar permissão de execução ao arquivo:

sudo chmod +x /usr/local/bin/yt

5. Funcionamento

No terminal digite yt "o que você quer buscar no youtube entre aspas" e apertar Enter, ele retornará os 8 vídeos mais indicados da pesquisa (no script o trecho "yt-dlp -j "ytsearch8:$*" > $tempfile" define o número de respostas, pode alterar conforme o gosto) , digitar o número do vídeo escolhido, apertar Enter e o mpv surgirá, sem propagandas e rastreamento.

Até a próxima!

Outras dicas deste autor

Gravação de tela com temporizador

Bloqueando telemetria no Deepin 23.1

Complementando o Swaybar

Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)

Leitura recomendada

Como realizar consultas em vários servidores simultaneamente

Resolvendo problemas ao montar SMBFS

Manipulação de strings no bash

Recuperando posição do cursor na última linha editada no VIM

Gravando logs dos comandos digitados

  

Comentários
[1] Comentário enviado por leoCCB em 04/07/2023 - 04:19h


Show

[2] Comentário enviado por removido em 25/10/2023 - 13:46h

Não aparece a numeração e o script não fecha quando clica no x do mpv fica no loop do while

coloquei a palavra linux

./yt linux

Resultado:

"O que é Linux? (Explicação COMPLETA para iniciantes) - 2023"
"https://www.youtube.com/watch?v=K05CssAbQgo"
"Nitrux Linux Review | THIS is Ubuntu's Parallel Universe Twin! (NEW)"
"https://www.youtube.com/watch?v=dAXMyO-B8OY"
"INSTALEI O SISTEMA OPERACIONAL DOS HACKERS, KALI LINUX"
"https://www.youtube.com/watch?v=ztAdVuQj7CQ"
"THUNDERBIRD: the SUCCESS STORY of LINUX!"
"https://www.youtube.com/watch?v=XYqkOxZMsfU"
"Por que Hackers usam o Kali Linux? - Conheça o Sistema"
"https://www.youtube.com/watch?v=ggVQNAcXok4"
"Let me explain... | Ubuntu 23.10 Impressions - Linux Distro Reviews"
"https://www.youtube.com/watch?v=qLgJbBO_Bcw"
"Gaming On Linux Revisited ..."
"https://www.youtube.com/watch?v=O_0cpXNP_X0"
"Top 5 Linux Distros For Older Hardware"
"https://www.youtube.com/watch?v=qUpdHF69BQY"

[3] Comentário enviado por maurixnovatrento em 29/10/2023 - 16:33h


Dica show.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/mxnt10

[4] Comentário enviado por lobzmedunimes em 19/06/2025 - 19:48h


[2] Comentário enviado por removido em 25/10/2023 - 13:46h

Não aparece a numeração e o script não fecha quando clica no x do mpv fica no loop do while

coloquei a palavra linux

./yt linux

Resultado:

"O que é Linux? (Explicação COMPLETA para iniciantes) - 2023"
"https://www.youtube.com/watch?v=K05CssAbQgo"
"Nitrux Linux Review | THIS is Ubuntu's Parallel Universe Twin! (NEW)"
"https://www.youtube.com/watch?v=dAXMyO-B8OY"
"INSTALEI O SISTEMA OPERACIONAL DOS HACKERS, KALI LINUX"
"https://www.youtube.com/watch?v=ztAdVuQj7CQ"
"THUNDERBIRD: the SUCCESS STORY of LINUX!"
"https://www.youtube.com/watch?v=XYqkOxZMsfU"
"Por que Hackers usam o Kali Linux? - Conheça o Sistema"
"https://www.youtube.com/watch?v=ggVQNAcXok4"
"Let me explain... | Ubuntu 23.10 Impressions - Linux Distro Reviews"
"https://www.youtube.com/watch?v=qLgJbBO_Bcw"
"Gaming On Linux Revisited ..."
"https://www.youtube.com/watch?v=O_0cpXNP_X0"
"Top 5 Linux Distros For Older Hardware"
"https://www.youtube.com/watch?v=qUpdHF69BQY"



#!/bin/bash

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

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

# Extrai os títulos e URLs
mapfile -t youtube_titles < <(jq -r '.fulltitle' "$tempfile")
mapfile -t youtube_urls < <(jq -r '.webpage_url' "$tempfile")

# Mostra os vídeos encontrados com índice
for i in "${!youtube_titles[@]}"; do
printf "[%d] %s\n" $((i + 1)) "${youtube_titles[$i]}"
done

# Loop para escolher e tocar vídeo
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
mpv "${youtube_urls[$((input - 1))]}" &
else
echo "Entrada inválida."
fi
done

rm "$tempfile" "$youtube_dl_log"



Código melhorado, para quem ainda quiser usar!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts