Criador de playlist
Publicado por Allan Barcelos (última atualização em 26/11/2024)
[ Hits: 45 ]
Homepage: https://barcelos.dev
O script baixar_playlist.sh é uma ferramenta de linha de comando desenvolvida para facilitar o download de músicas do YouTube com base em uma pesquisa por gênero. Este script utiliza o yt-dlp, uma alternativa moderna ao [*****], para buscar, verificar e baixar vídeos em formato de áudio MP3.
Abaixo estão os principais recursos e funcionalidades do script:
Recursos e Funcionalidades
Download Automatizado de yt-dlp:
O script verifica se o binário do yt-dlp está presente no diretório de execução. Se não estiver, ele faz o download automaticamente a partir do repositório oficial do GitHub e define as permissões de execução adequadas.
Seleção de Gênero Musical:
O usuário é apresentado com um menu para escolher o gênero musical desejado. As opções disponíveis são:
Rock
Pop
Clássica
MPB
Escolha do Número de Músicas:
O usuário pode especificar quantas músicas deseja baixar. O script valida a entrada e usa um valor padrão de 10 músicas se a entrada não for um número válido.
Pesquisa e Download:
Com base no gênero e na quantidade especificada, o script realiza uma busca no YouTube, obtendo URLs dos vídeos. Ele verifica cada vídeo para garantir que não seja uma transmissão ao vivo, ignorando quaisquer vídeos ao vivo para evitar downloads indesejados.
Processamento e Salvamento:
Os vídeos que não são transmissões ao vivo são baixados como arquivos MP3 usando o yt-dlp. Os arquivos de áudio são salvos na pasta playlist, com nomes baseados no título dos vídeos.
Funcionamento do Script
Inicialização e Download do yt-dlp:
O script inicia verificando a presença do binário yt-dlp. Se não estiver presente, ele baixa o binário e torna-o executável.
Menu de Seleção de Gênero:
O usuário escolhe um gênero musical a partir de uma lista pré-definida.
Seleção de Quantidade de Músicas:
O script solicita ao usuário a quantidade de músicas desejadas e valida a entrada.
Busca e Verificação:
O script usa o yt-dlp para buscar vídeos no YouTube e verifica se cada vídeo é uma transmissão ao vivo.
Download das Músicas:
Músicas que não são transmissões ao vivo são baixadas em formato MP3 e salvas na pasta playlist.
Conclusão:
Após o download, o script informa que o processo foi concluído.
Requisitos
yt-dlp: O script baixa automaticamente a versão mais recente do yt-dlp, mas você precisa garantir que o script tenha permissão para executar downloads e executar o binário.
Internet: O script requer uma conexão com a Internet para buscar vídeos e realizar o download.
#!/bin/bash # Nome do arquivo do yt-dlp YT_DLP="yt-dlp" # Função para baixar o yt-dlp se não estiver presente baixar_yt_dlp() { if [ ! -f "$YT_DLP" ]; then echo "Baixando yt-dlp..." curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o "$YT_DLP" chmod +x "$YT_DLP" fi } # Função para mostrar o menu e obter a escolha do usuário mostrar_menu() { echo "Escolha um gênero de música:" echo "1) Rock" echo "2) Pop" echo "3) Clássica" echo "4) MPB" read -p "Digite o número do gênero escolhido: " genero } # Função para escolher o número de músicas a serem baixadas escolher_quantidade() { read -p "Quantas músicas você deseja baixar? (Digite um número): " quantidade if ! [[ "$quantidade" =~ ^[0-9]+$ ]]; then echo "Número inválido. Usando 10 músicas por padrão." quantidade=10 fi echo $quantidade } # Função para obter URLs de vídeos do YouTube obter_urls() { local pesquisa=$1 local quantidade=$2 ./"$YT_DLP" "ytsearch${quantidade}:${pesquisa}" --get-id | awk '{print "https://www.youtube.com/watch?v="$1}' } # Função para verificar se o vídeo é uma live verificar_live() { local url=$1 local info info=$(./"$YT_DLP" -j "$url" 2>/dev/null) echo "$info" | grep -q '"is_live": true' } # Função para baixar músicas usando yt-dlp baixar_musicas() { local urls=$1 local pasta_saida=$2 mkdir -p "$pasta_saida" for url in $urls; do if verificar_live "$url"; then echo "O vídeo $url é uma transmissão ao vivo e será ignorado." else echo "Baixando $url..." ./"$YT_DLP" -x --audio-format mp3 -o "${pasta_saida}/%(title)s.%(ext)s" "$url" fi done } # Função principal main() { baixar_yt_dlp mostrar_menu case $genero in 1) pesquisa="rock" ;; 2) pesquisa="pop" ;; 3) pesquisa="classical" ;; 4) pesquisa="MPB" ;; *) echo "Opção inválida." exit 1 ;; esac quantidade=$(escolher_quantidade) echo "Buscando $quantidade músicas no gênero selecionado..." urls=$(obter_urls "$pesquisa" "$quantidade") echo "Baixando músicas..." baixar_musicas "$urls" "playlist" echo "Download concluído." } main
Script Iptables para servidor DNS e SSH
Gerador de Pacotes de Instalação
Automatizar e compactar backup de banco MySQL
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Criando uma VPC na AWS via CLI
Multifuncional HP imprime mas não digitaliza
Dica básica para escrever um Artigo.
Como Exibir Imagens Aleatórias no Neofetch para Personalizar seu Terminal
Melhorando a precisão de valores flutuantes em python[AJUDA] (11)
GLPI - Configuração de destinatário com conta Microsoft Exchange (0)
Vou voltar moderar conteúdos de Dicas e Artigos (3)
OpenVPN no MACBOOK conecta mas não pinga pastas de rede compartilhada ... (1)