18. Búsqueda en Youtube
18. Búsqueda en YouTube con Python: Tutorial para Principiantes
🎵 Introducción: Tu asistente musical y de videos
¡Excelente noticia! Ahora que tu asistente puede buscar en Google, vamos a darle superpoderes musicales y de video. Imagina poder decir "ponme música" y que automáticamente se abra YouTube con tu canción favorita. ¡Es como tener un DJ personal en tu computadora!
Analoǵía del Control Remoto:
Google = Buscar información (como un buscador web)
YouTube = Ver videos y escuchar música (como un control remoto de TV)
🎯 ¿Qué vamos a lograr hoy?
Vamos a enseñarle a tu asistente a:
Buscar videos en YouTube
Reproducir música automáticamente
Controlar todo con tu voz
¡La magia ya está en pywhatkit! La misma librería que usamos para Google también funciona para YouTube.
🔍 Comparación rápida: Google vs YouTube
✍️ Código paso a paso
Paso 1: Copiar y adaptar (¡reutilizar es inteligente!)
python
# Tenemos esta función para Google:
def buscar_google(comando):
busca = comando.replace('busca en google', '').strip()
hablar('Comenzando búsqueda...')
pywhatkit.search(busca)
hablar('Búsqueda completada')
# Vamos a crear una PARA YouTube:
def buscar_youtube(comando):
busca = comando.replace('busca en youtube', '').strip()
hablar('Comenzando búsqueda...')
pywhatkit.playonyt(busca) # ¡DIFERENCIA CLAVE!
hablar('Búsqueda completada')
💡 Consejo para principiantes: Cuando el código es similar, ¡copia y adapta! Es como seguir una receta:
Misma base (limpiar comando + hablar + ejecutar)
Ingrediente diferente (search vs playonyt)
Paso 2: Entender playonyt()
python
pywhatkit.playonyt("despacito")
Esto hace TRES cosas automáticamente:
Abre YouTube en tu navegador
Busca "despacito"
¡Y reproduce el primer video!
Es como decirle a un amigo:
❌ "Abre YouTube, escribe despacito, haz clic en buscar, luego en el primer video"
✅ "Pon despacito en YouTube"
Paso 3: El error común y su solución
Problema que menciona el texto:
python
# ERROR: TypeError - función toma 0 argumentos pero se le dio 1
def buscar_youtube(): # ← ¡Falta el parámetro!
# código...
# Cuando llamamos:
buscar_youtube(comando) # ← Le pasamos algo, pero la función no lo espera
Solución:
python
# CORRECTO: La función DEBE recibir el parámetro
def buscar_youtube(comando): # ← Ahora sí recibe 'comando'
busca = comando.replace('busca en youtube', '').strip()
# resto del código...
📌 Regla de oro: Si vas a usar algo dentro de una función, debes declararlo como parámetro.
Paso 4: Integrar con el asistente principal
python
# En tu loop principal (donde procesas comandos):
if 'busca en youtube' in comando or 'reproduce en youtube' in comando:
buscar_youtube(comando)
Ejemplos que funcionarán:
"busca en youtube tutorial de python"
"reproduce en youtube música relajante"
"busca en youtube receta de pastel"
🎵 Código completo mejorado
python
# ASISTENTE VIRTUAL - BÚSQUEDA EN YOUTUBE
import pywhatkit
import pyttsx3
import speech_recognition as sr
# Configuración de voz (igual que antes)
engine = pyttsx3.init()
def hablar(texto):
engine.say(texto)
engine.runAndWait()
# Función específica para YouTube
def buscar_youtube(comando):
"""
Busca y reproduce un video en YouTube
Args:
comando (str): Comando completo del usuario
Ejemplo: "busca en youtube despacito"
"""
# OPCIÓN 1: Si dice "busca en youtube"
if 'busca en youtube' in comando:
busca = comando.replace('busca en youtube', '').strip()
# OPCIÓN 2: Si dice "reproduce en youtube"
elif 'reproduce en youtube' in comando:
busca = comando.replace('reproduce en youtube', '').strip()
# OPCIÓN 3: Si dice solo "youtube"
elif 'youtube' in comando and len(comando.split()) > 1:
busca = comando.replace('youtube', '').strip()
else:
hablar("No entendí qué quieres buscar en YouTube")
return
# Verificar que haya algo para buscar
if not busca:
hablar("¿Qué te gustaría ver en YouTube?")
return
# Ejecutar la búsqueda
hablar(f"Buscando {busca} en YouTube")
try:
pywhatkit.playonyt(busca)
hablar(f"Reproduciendo {busca}")
except Exception as e:
hablar("Hubo un error al buscar en YouTube")
print(f"Error: {e}")
# Función principal del asistente
def run_asistente():
hablar("Asistente de YouTube activado")
while True:
# Escuchar comando (tu código de reconocimiento de voz)
comando = escuchar() # Tu función para escuchar
if not comando:
continue
# Detectar comandos de YouTube
if any(palabra in comando for palabra in
['youtube', 'busca en youtube', 'reproduce en youtube']):
buscar_youtube(comando)
elif 'salir' in comando:
hablar("Cerrando asistente de YouTube")
break
# Diagrama visual del proceso:
"""
🎤 TÚ HABLAS → "busca en youtube canciones 80s"
↓
🎧 ASISTENTE ESCUCHA → convierte a texto
↓
🧠 PROCESA → detecta "busca en youtube"
↓
✂️ LIMPIA → quita "busca en youtube" → queda "canciones 80s"
↓
🎵 EJECUTA → pywhatkit.playonyt("canciones 80s")
↓
🖥️ RESULTADO → YouTube se abre y reproduce
"""
🚨 Problemas comunes y soluciones
Problema 1: Publicidades (como menciona el texto)
python
# ¡Es normal! YouTube muestra ads antes de algunos videos
# No es error de tu código, es cómo funciona YouTube
Problema 2: No se reproduce automáticamente
Verifica que tengas un navegador compatible (Chrome, Firefox)
Asegúrate de tener JavaScript habilitado
Espera unos segundos, pywhatkit tiene un delay incorporado
Problema 3: Reproduce el video incorrecto
YouTube reproduce el primer resultado de búsqueda
Para mayor precisión: "busca en youtube Luis Fonsi despacito oficial"
🎮 Ejercicio práctico: Personaliza tu función
Reto 1: Agrega opciones de búsqueda
python
# Puedes agregar estos comandos:
# "música en youtube" → agrega "música" automáticamente
# "video tutorial de" → agrega "tutorial"
if 'música' in comando and 'youtube' in comando:
busca = comando.replace('música', '').replace('youtube', '').strip()
busca = f"{busca} música" # Agrega "música" al final
Reto 2: Controla el tiempo
python
# `playonyt()` puede recibir un segundo parámetro: tiempo de espera
pywhatkit.playonyt(busca, wait_time=2) # Espera 2 segundos
📊 Esquema de funciones del asistente
text
ASISTENTE VIRTUAL
├── 🔊 Hablar (pyttsx3)
├── 🎤 Escuchar (speech_recognition)
├── 🔍 Buscar en Google (pywhatkit.search)
├── 🎵 Buscar en YouTube (pywhatkit.playonyt) ← ¡NUEVO!
└── 📚 Buscar en Wikipedia (wikipedia)
✅ Resumen clave
pywhatkit.playonyt() es la función mágica para YouTube
Misma lógica que Google: limpiar comando + ejecutar
Error común: No olvidar el parámetro en la función
¡Se reproduce automáticamente! No solo busca, sino que reproduce
Publicidades = normal No es error de tu código
🎯 Ideas para expandir tu asistente
Lista de reproducción:
python
if 'pon mi playlist' in comando:
# Reproduce varios videos seguidos
videos = ["canción 1", "canción 2", "canción 3"]
Control de volumen:
python
if 'sube volumen' in comando:
# Código para subir volumen del sistema
Buscar específicamente:
python
if 'tutorial' in comando:
busca = comando + " tutorial paso a paso"
📝 Cuestionario de repaso
Pregunta 1
¿Qué función de pywhatkit usamos para YouTube?
a) search_yt()
b) youtube_search()
c) playonyt()
d) open_youtube()
Pregunta 2
Si digo "busca en youtube ejercicios de yoga", ¿qué texto se enviará a YouTube?
a) "busca en youtube"
b) "ejercicios de yoga"
c) "youtube ejercicios"
d) "busca youtube ejercicios de yoga"
Pregunta 3
¿Qué hace pywhatkit.playonyt("rock clásico")?
a) Solo busca "rock clásico"
b) Busca y reproduce el primer video
c) Descarga videos de rock
d) Crea una playlist
Pregunta 4
¿Por qué es importante poner (comando) después de def buscar_youtube?
a) Porque se ve mejor
b) Para recibir el texto que dice el usuario
c) Es opcional
d) Para evitar errores de sintaxis
Pregunta 5
Si YouTube muestra una publicidad antes del video, ¿es esto?
a) Un error en tu código
b) Normal, YouTube siempre muestra ads
c) Problema de instalación
d) Error de internet
Respuestas del cuestionario
c) playonyt() - "play on YouTube" (reproducir en YouTube)
b) "ejercicios de yoga" - Se elimina "busca en youtube"
b) Busca y reproduce el primer video - La magia de playonyt()
b) Para recibir el texto que dice el usuario - Sin parámetro, no podemos procesar el comando
b) Normal, YouTube siempre muestra ads - No es problema de tu código, es de YouTube
🎉 ¡Felicidades!
Ahora tu asistente puede:
✅ Buscar información (Google)
✅ Reproducir música y videos (YouTube)
✅ Responder a tu voz
Próximo paso ideal: Agregar control de reproducción (pausar, siguiente, anterior) ¡Sigue practicando
https://www.youtube.com/watch?v=Pj9KbAKpQyk
https://www.youtube.com/watch?v=-0tIy8wWtzE
https://www.youtube.com/watch?v=YqSSId7xfwU
https://www.youtube.com/watch?v=MjK-j7YJ5YI
https://www.youtube.com/watch?v=l2G8-iQYfoA
https://www.youtube.com/watch?v=t-YO0XeHczU
Comentarios
Publicar un comentario