Ensinando o J.A.R.V.I.S. a reproduzir músicas no YouTube com um simples comando de voz
🌌 Projeto CodeVerse Python – #41/2025
👋 Fala, galera dev! 🚀
Já imaginou o Tony Stark trabalhando em seu laboratório, projetando uma nova armadura, e no meio da madrugada sentir vontade de ouvir uma música? Ele não para o que está fazendo, não abre o YouTube, não digita nada. Ele simplesmente diz:
“Jarvis, toque "Iron Man" do Black Sabbath.”
E pronto. A música começa a tocar. 🎶
É exatamente essa experiência que vamos trazer para o nosso Projeto CodeVersePython2025 neste artigo. Chegamos ao artigo #41, e hoje o nosso Jarvis vai aprender a reproduzir músicas automaticamente no YouTube — tudo por comando de voz, sem precisar tocar no teclado.
Essa função, embora simples, é um divisor de águas: ela transforma o Jarvis de um assistente que apenas entende e responde, para um assistente que entende e age. E é aí que ele começa a se aproximar cada vez mais do verdadeiro assistente pessoal que vemos nos filmes da Marvel.
🧠 Como isso funciona?
A ideia é bem simples: o Jarvis vai ouvir o nome da música, transformar sua fala em texto, montar um link automático do YouTube e abrir o navegador pra você — tudo em questão de segundos. As ferramentas por trás dessa mágica são três bibliotecas poderosas que já usamos várias vezes no projeto:
- 🎙️ speech_recognition → traduz sua voz em texto.
- 🔊 pyttsx3 → permite que o Jarvis fale com você.
- 🌐 webbrowser → abre o navegador com a pesquisa pronta.
Assim, quando você disser:
“Jarvis, toque AC/DC no YouTube.”
O sistema vai gerar internamente algo como:
https://www.youtube.com/results?search_query=ac+dc
E abrirá o YouTube com a busca feita, igualzinho ao que você faria manualmente — só que agora, o Jarvis faz por você.
🐍 Código em Ação
Aqui está o trecho responsável por essa funcionalidade no nosso Jarvis:
# Função para reproduzir música do YouTube
def reproduzir_musica(microfone):
# Solicita ao usuário o nome da música
falar("Qual música você deseja ouvir?")
with sr.Microphone() as source:
audio = microfone.listen(source)
try:
musica = microfone.recognize_google(audio, language="pt-BR")
# Se não foi especificado o nome da música, solicita novamente
if not musica:
falar("Por favor, diga o nome da música.")
with sr.Microphone() as source:
audio = microfone.listen(source)
musica = microfone.recognize_google(audio, language="pt-BR")
# Formata a música para a busca no YouTube
musica_formatada = musica.replace(" ", "+")
# URL de pesquisa do YouTube com a música
url_youtube = (
f"https://www.youtube.com/results?search_query={musica_formatada}"
)
# Abre o navegador e redireciona para o YouTube
webbrowser.open(url_youtube)
except sr.UnknownValueError:
falar("Desculpe, não consegui entender. Por favor, repita.")
⚙️ Entendendo passo a passo
- O Jarvis pergunta o que você quer ouvir Ele fala com você usando o pyttsx3:
- Captura sua resposta pelo microfone A biblioteca speech_recognition escuta e transforma sua fala em texto.
- Gera o link da busca no YouTube Ele substitui os espaços por “+” e cria o link da pesquisa.
- Abre o navegador automaticamente Com o comando webbrowser.open(url_youtube), o YouTube é aberto com o resultado da música que você pediu.
- E se ele não entender? O Jarvis responde com algo como:
Simples, direto e totalmente funcional. ⚡
🎧 Testando o comando
Depois de adicionar essa função no seu código, você pode chamá-la dentro do loop principal assim:
elif "reproduzir música" in comando:
reproduzir_musica(microfone)
E pronto! Agora, quando você disser:
“Jarvis, reproduzir música do Iron Man no YouTube.”
Ele vai responder com estilo:
“Entendido, senhor Carlos. Tocando AC/DC — Shoot to Thrill.” 😎
🎧 Entendendo Cada Parte do Código...
O que esse código faz é transformar um pedido falado em uma pesquisa pronta no YouTube. Primeiro, o Jarvis “fala” com você usando a biblioteca de voz (pyttsx3) e pergunta qual música deseja ouvir. Isso deixa claro que ele está pronto para captar a sua resposta. Em seguida, ele liga o microfone por alguns segundos e escuta o que você diz — esse áudio é enviado para a biblioteca de reconhecimento de fala (speech_recognition), que converte a sua fala em texto (por exemplo: “ACDC Thunderstruck”).
Com o texto em mãos, o Jarvis faz um pequeno ajuste: troca os espaços por sinais de “+” (algo como transformar “ac dc thunderstruck” em “ac+dc+thunderstruck”). Esse detalhe é importante porque o YouTube usa esse formato para buscas na URL. A partir daí, o código monta um link de pesquisa do YouTube com o nome da música que você disse. Nada de magia: é exatamente como se você abrisse o navegador e digitasse a busca, só que o Jarvis faz isso automaticamente.
Depois de montar a URL, o programa usa a biblioteca webbrowser para abrir o seu navegador padrão diretamente na página de resultados do YouTube. Em outras palavras, você fala o nome da música e, em segundos, a tela com os resultados aparece para você clicar e tocar. Esse comportamento é propositalmente simples: ao abrir a página de resultados, você tem liberdade para escolher a versão ao vivo, o clipe oficial, um lyric video, uma playlist etc.
O código também tem um cuidado com falhas comuns. Se o Jarvis não entender o que você disse (por barulho, dicção ou microfone baixo), ele cai no tratamento de erro e responde algo como “não consegui entender, por favor, repita”. Isso evita travamentos e torna a experiência mais amigável. Se você não disser nada de forma clara na primeira vez, ele pode perguntar novamente o nome da música e escutar de novo.
É importante entender que o reconhecimento de fala usado (recognize_google) depende de internet para transcrever o áudio. Sem conexão, o Jarvis não consegue transformar sua voz em texto e, consequentemente, não consegue montar a pesquisa. Já a parte de abrir o navegador é local: assim que a URL está pronta, o webbrowser simplesmente dispara o seu Chrome/Edge/Firefox e carrega a página.
Na lógica geral, essa função de música costuma ser chamada depois de uma “palavra de ativação” (wake word). O Jarvis fica ouvindo em silêncio até você dizer algo como “Olá, Jarvis”. Quando reconhece a wake word, ele reage (“Estou ouvindo, senhor”) e, só então, escuta o próximo comando específico (“reproduzir música”, “tocar AC/DC”, “abrir YouTube com…”) para decidir qual função executar. Se o comando for de música, ele entra exatamente nessa rotina: pergunta o que tocar, escuta, converte para texto, cria o link e abre o YouTube.
Por fim, é bom saber que essa solução é direta e fácil de manter. Você não precisa integrar APIs do YouTube, lidar com autenticação ou tocar mídia embutida no app. O Jarvis atua como um atalho inteligente: recebe sua intenção por voz e executa a ação equivalente no navegador. Se quiser evoluir no futuro, dá para adicionar confirmação (“Você quis dizer ‘Thunderstruck’?”), salvar favoritos (“tocar minha playlist de treino”) ou até buscar e abrir automaticamente o primeiro resultado — mas o esqueleto principal já está sólido: ouvir, entender, montar a URL e abrir.
🔮 Conclusão
Com essa nova habilidade, o Jarvis agora também é o DJ oficial do seu laboratório. 🎶 Hoje, aprendemos a combinar voz, automação e navegação web para criar algo simples, mas muito útil — e extremamente divertido.
- ✅ Usamos o speech_recognition para capturar a voz.
- ✅ O pyttsx3 para dar respostas faladas.
- ✅ E o webbrowser para automatizar ações reais.
Nos próximos artigos, vamos continuar evoluindo o projeto com novas funções: 📝 Criar anotações por voz, 🔒 Ativar o modo privado, 🧠 E integrar a memória do Jarvis com a IA do Google Gemini.
Porque o futuro não é esperar a tecnologia chegar. É a gente criar ela hoje. ⚡