Integración domótica YouTube, gratuita y de código abierto

Sigue canales públicos de YouTube: vídeos nuevos, directos, suscriptores, escenas y widgets.
Presentación
Esta integración sigue canales públicos de YouTube en Gladys. Cada canal se convierte en un dispositivo con sus suscriptores, sus vistas totales, su número de vídeos y el título y la fecha de su último vídeo. Los vídeos nuevos se detectan con los feeds RSS públicos de los canales, cada 15 minutos y sin cuota; las estadísticas y los detalles de los vídeos (duración, directo) vienen de la API oficial YouTube Data API v3 con tu propia clave de API de Google Cloud.
Añade disparadores de escena (se publica un vídeo o un Short, empieza un directo, se alcanza un hito de suscriptores, se rechaza la clave, se agota la cuota), acciones de escena (el último vídeo de un canal, las estadísticas de un canal) y tres widgets de panel.
Sin afiliación con Google ni YouTube, ni respaldada ni patrocinada por ellos. YouTube es una marca de Google LLC.

La imagen de arriba es una ilustración generada con canales inventados, no una captura de pantalla.
Requisitos
- Gladys Assistant 5.1.0 o posterior.
- Una cuenta de Google y una clave de API de Google Cloud con YouTube Data API v3 activada:
- Abre la consola de Google Cloud y crea un proyecto (por ejemplo «Gladys YouTube»).
- En API y servicios → Biblioteca, busca YouTube Data API v3 y pulsa Habilitar.
- En API y servicios → Credenciales, pulsa Crear credenciales → Clave de API.
- Edita la clave: en Restricciones de API, elige «Restringir clave» y marca solo YouTube Data API v3; deja Restricciones de aplicación en «Ninguna» (Gladys llama desde tu casa, no desde un sitio web).
- No hace falta cuenta de facturación: la API es gratuita dentro de su cuota diaria de 10.000 unidades por proyecto, reiniciada a la medianoche del Pacífico. Cada llamada de la integración cuesta 1 unidad; para 10 canales, unas 30 unidades al día.
Configuración
| Campo | Significado |
|---|---|
| Clave de API de Google Cloud | Obligatoria. Nunca aparece en los registros, solo se envía a Google en una cabecera. |
| Vídeos nuevos: comprobar cada (minutos) | 5 a 240, 15 por defecto. Lee el feed RSS de cada canal: gratis. YouTube actualiza sus feeds cada 15 minutos aproximadamente. |
| Estadísticas: leer cada (minutos) | 15 a 1.440, 60 por defecto. Suscriptores, vistas y vídeos de todos los canales: 1 unidad por cada 50 canales. |
| Presupuesto diario (unidades) | 9.000 por defecto. Una vez gastado, las estadísticas esperan a la medianoche del Pacífico; los feeds RSS siguen detectando vídeos nuevos (sin su duración). |
| Idioma de los textos | Nombres de funciones, fechas, resúmenes de escenas y mensajes. Automático: el idioma de tu panel. |
Botones de configuración:
- Añadir un canal: escribe su @identificador (
@GoogleDevelopers), su URL (youtube.com/@…,/channel/UC…,/user/…), su id (UC…) o la URL de uno de sus vídeos. 1 unidad (2 para una URL de vídeo), más 1 para los detalles de sus últimos vídeos. Hasta 50 canales. - Quitar un canal: por su número (
#2), su nombre, su @identificador o su id. Su dispositivo sigue en Gladys hasta que lo elimines. - Listar los canales: cada canal con su número, sus suscriptores, su último vídeo, su última comprobación y su último error, y las unidades del día.
- Probar la clave de API: lee el canal oficial de YouTube (1 unidad) y dice qué corregir si Google rechaza la clave.
Uso
Canales
Añade los canales con Añadir un canal. Las últimas subidas de un canal nuevo se leen enseguida y se guardan como el pasado: nunca se anuncian como nuevas. Las antiguas URL personalizadas (/c/Nombre) no tienen API: se prueba el nombre como identificador; si falla, usa el @identificador que aparece en la página del canal.
Dispositivos
Abre la pestaña Descubrir de la integración y añade los canales que quieras. Cada dispositivo tiene:
- Suscriptores, vistas totales, vídeos (contadores). YouTube redondea hacia abajo el número público de suscriptores a tres cifras significativas (1.234.567 da 1.230.000); un canal puede ocultarlo, y la función queda vacía.
- Último vídeo: el título de la última subida (incluidos un Short o un directo terminado, excluido un directo programado) y su fecha de publicación, en la zona horaria de Gladys.
Widgets del panel
- Últimos vídeos: las últimas subidas de tus canales (8 como máximo), de la más reciente a la más antigua y un directo en curso arriba, con miniatura, canal, fecha y un distintivo (EN DIRECTO, Programado, Short o la duración). Al tocar se abren los detalles y el enlace al vídeo. Ajustes: los canales (vacío: todos), Shorts mostrados o no. «Comprobar» lee enseguida los feeds RSS (gratis).
- Canal de YouTube: un canal, con la miniatura de su último vídeo, sus suscriptores, vistas y vídeos, el último vídeo, su fecha, el estado del directo y un botón «Actualizar» (1 unidad para las estadísticas).
- Cuota de YouTube: las unidades gastadas hoy, el próximo reinicio, las unidades previstas al día por tus canales, el estado de la clave.
Los botones nunca comprueban un canal comprobado hace menos de un minuto, y nunca disparan una escena: los vídeos nuevos que encuentran se anuncian en la siguiente vuelta del reloj.
Escenas
Disparadores:
- Un canal publica un vídeo: un vídeo o Short nuevo, publicado hace menos de 48 horas (sin directos). Filtros: canal, tipo (vídeo o Short). Variables:
channel_name,title,url,video_id,kind,short,duration_seconds,duration,published_at,thumbnail,summary. - Un canal empieza un directo: empieza un directo o un estreno; un directo programado se comprueba cada 5 minutos desde 30 minutos antes de su inicio. Variables:
channel_name,title,url,video_id,started_at,scheduled_at,thumbnail,summary. - Un canal alcanza un hito de suscriptores: 100, 200, 500, 1.000, 2.000, 5.000, 10.000… Cada hito se dispara una sola vez; la primera lectura de un canal sirve de referencia. Variables:
channel_name,milestone,subscribers,summary. - Google rechaza la clave de API: una vez, hasta que una solicitud vuelva a funcionar. Variables:
reason,summary. - La cuota del día se ha agotado: el presupuesto de la integración (
budget) o un rechazo de Google (google); una vez al día. Variables:source,used,budget,summary.
Acciones:
- Obtener el último vídeo de un canal: comprueba ahora su feed RSS (gratis). Salidas:
title,url,video_id,short,duration_seconds,published_at,live,summary. - Obtener las estadísticas de un canal: la última lectura, sin solicitud. Salidas:
subscribers(-1 si están ocultos),views,videos,summary.
Ejemplos:
- Cuando un canal publica un vídeo, tipo «Vídeo» → enviar un mensaje:
{{triggerEvent.data.summary}}. - Cuando un canal empieza un directo → poner las luces del salón en modo cine.
- Cada tarde a las 19:00 → obtener el último vídeo de un canal → decir su título con la síntesis de voz de Gladys.
Transporte
Nube: la integración lee www.googleapis.com (Data API, con tu clave), www.youtube.com (feeds RSS, detección de Shorts) e i.ytimg.com (miniaturas). Solo se envían los ids de los canales y vídeos públicos seguidos. Los canales se guardan en la configuración de Gladys; /data guarda las últimas lecturas y el contador de unidades.
Solución de problemas
- «Google rechaza la clave de API (API_KEY_INVALID)»: copia de nuevo la clave desde la consola Cloud.
- «SERVICE_DISABLED» o «accessNotConfigured»: YouTube Data API v3 no está activada en el proyecto de la clave.
- «API_KEY_SERVICE_BLOCKED»: las restricciones de API de la clave no incluyen YouTube Data API v3.
- «API_KEY_HTTP_REFERRER_BLOCKED» o «API_KEY_IP_ADDRESS_BLOCKED»: pon las restricciones de aplicación de la clave en «Ninguna».
- Cuota agotada: espera a la medianoche del Pacífico; comprueba en la consola Cloud (API y servicios → YouTube Data API v3 → Cuotas) que ninguna otra aplicación usa el mismo proyecto, o lee las estadísticas con menos frecuencia.
- «RSS feed 404» en «Listar los canales»: los feeds de YouTube a veces fallan durante unas horas; la integración lee entonces la lista de subidas (1 unidad por canal) mientras se haya gastado menos del 80 % del presupuesto. Un canal con error durante días quizá se haya eliminado.
- Un vídeo nuevo no se anunció: YouTube actualiza sus feeds cada 15 minutos aproximadamente, así que un vídeo se ve entre 15 y 30 minutos después de publicarse; un vídeo publicado mientras la integración estuvo parada más de 48 horas no se anuncia; un estreno dispara «empieza un directo», no «publica un vídeo».
- Informa de un problema en GitHub con las versiones de Gladys y de la integración, el texto de «Listar los canales» y los registros de la integración (Ajustes → Supervisión). Nunca pegues tu clave de API.
Parámetros de configuración
Estos son los parámetros que YouTube te pide en su pantalla de configuración en Gladys.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| YouTube | section | No | Cómo funciona: 1. En la consola de Google Cloud, crea un proyecto, activa «YouTube Data API v3» y crea una clave de API (restringida a esa API). Pégala abajo. 2. Añade cada canal con «Añadir un canal»: su @identificador, su URL o su id. 3. Abre la pestaña Descubrir y añade el canal: se convierte en un dispositivo con sus suscriptores, vistas, vídeos y último vídeo. 4. Añade los widgets a un panel y usa las escenas (vídeo nuevo, directo iniciado). Los vídeos nuevos se detectan con los feeds RSS públicos (sin cuota); las estadísticas y los detalles de los vídeos usan la cuota diaria gratuita de la API (10.000 unidades, unas 30 al día para 10 canales). Sin afiliación con Google ni YouTube. |
| Clave de API de Google Cloud | secret | Sí | Una clave de un proyecto de Google Cloud con «YouTube Data API v3» activada. Restríngela a esa API; no hace falta cuenta de facturación. |
| Vídeos nuevos: comprobar cada (minutos) | number | No | Con qué frecuencia se lee el feed RSS de cada canal (5 a 240). Gratis: sin cuota. YouTube actualiza sus feeds cada 15 minutos aproximadamente. |
| Estadísticas: leer cada (minutos) | number | No | Suscriptores, vistas y vídeos de todos los canales (15 a 1.440): 1 unidad por cada 50 canales en cada lectura. |
| Presupuesto diario (unidades) | number | No | Unidades al día que la integración puede gastar; Google da gratis 10.000 al día por proyecto Cloud, reiniciadas a la medianoche del Pacífico. Una vez gastadas, los feeds RSS siguen detectando vídeos nuevos. |
| Idioma de los textos | select | No | Nombres de las funciones, fechas, resúmenes de escenas y mensajes de los botones. Automático: el idioma de tu panel en cuanto se haya mostrado un widget, deducido de la zona horaria de Gladys antes de eso. |
Cómo instalar YouTube en Gladys
- En Gladys, abre Integraciones: YouTube aparece en el catálogo junto a las integraciones nativas, con una insignia de comunidad.
- Haz clic en Instalar. Gladys descarga la imagen Docker (
ghcr.io/william-de71/gladys-youtube:0.1.0), la ejecuta en un entorno aislado del núcleo y genera la interfaz de la integración (dispositivos, descubrimiento y configuración). - Abre la pantalla de Configuración de la integración, rellena los parámetros y guarda.
- También puedes instalarla directamente desde la URL de su repositorio: https://github.com/William-De71/gladys-youtube.
YouTube requiere Gladys >=5.1.0. El catálogo de Gladys se actualiza cada hora, así que una nueva versión está disponible como máximo una hora después de publicarse.
¿Todavía no usas Gladys? Es gratuito y de código abierto: sigue la guía de instalación para empezar.
Sobre las integraciones externas
YouTube es una integración externa: una integración comunitaria empaquetada como contenedor Docker y publicada en GitHub. Gladys la instala con un clic y la ejecuta en un entorno aislado del núcleo. La publica y mantiene William-De71, no el equipo principal de Gladys.
- Explorar todas las integraciones, nativas y de la comunidad
- Crear y publicar tu propia integración externa
- Código fuente en GitHub — fuente de esta documentación