Canales «___hidden___» en tu bot de Discord: qué cambia el 16 de noviembre de 2026
A partir del 16 de noviembre de 2026, tu bot ya no sabrá cómo se llaman los canales que no puede ver: le llegarán con el nombre ___hidden___ o ni siquiera le llegarán. Si tu bot solo trabaja en sus canales, no tienes que hacer nada. Si lista, copia o audita todos los canales del servidor, sí. Esta guía sale antes de que entre en vigor y se basa en la documentación de Discord: aquí ves si te afecta, cómo probarlo ya y qué cambiar en discord.py y discord.js.
Qué cambia exactamente
Hasta ahora, un bot recibía los datos de todos los canales del servidor, también de los que no podía abrir: nombre, tema y permisos. Discord lo anunció el 12 de agosto de 2026 como cambio que rompe cosas, y desde el 16 de noviembre será así para todos los bots:
Por el Gateway (la conexión en directo, de donde sale la caché de tu bot), esos canales siguen llegando, pero con el nombre cambiado por ___hidden___, el flag CHANNEL_OBFUSCATED (1 << 17) puesto y una sola regla de permisos: VIEW_CHANNEL denegado a @everyone.
Por la API HTTP, GET /guilds/{guild.id}/channels ya no los devuelve: no salen, sin error ni aviso.
De un canal oculto solo son de fiar id, type, position y parent_id; el resto, Discord dice que no se use. En cuanto tu bot gana acceso, recibe un Channel Update con los datos de verdad. Y lo que llega dentro de una interacción (un comando con barra, por ejemplo) no se oculta.
Para Discord, poder ver un canal es tener VIEW_CHANNEL en él o estar conectado a él si es de voz. Y una categoría se ve si se ve alguno de sus canales.
¿Prefieres no montarlo tú? Hosting de bots de Discord desde 1,50 € al mes, sin permanencia y con devolución íntegra en 72 horas. O crea un bot de Discord gratis, sin tarjeta.
A qué bots les afecta
Discord lo dice claro: si tu bot solo actúa en canales que tiene permiso para ver, no le afecta. Un bot de bienvenida, de música, de sorteos o de tickets con sus canales bien puestos sigue igual.
Le afecta al que lee datos de canales que no ve. Discord pone tres ejemplos: los que copian o auditan la lista entera de canales, los que calculan permisos en todos los canales y los que hacen informes de la estructura del servidor.
Además, mira si tu bot hace alguna de estas cosas: buscar un canal por su nombre (discord.utils.get(guild.channels, name="registro"), o find en discord.js), hacer copias de seguridad del servidor, enseñar un selector de canales en una web de configuración o contar canales. Fíjate en esto último: la caché seguirá contando los ocultos y una consulta por HTTP, no, así que las dos cifras dejarán de coincidir.
Cómo probarlo antes de la fecha
Discord deja adelantarlo por el Gateway, solo para hacer pruebas y de forma temporal. Por HTTP no hay manera: eso solo se verá el día 16.
Abre tu bot en el portal
En discord.com/developers/applications, elige tu aplicación y entra en «Bot». Usa un bot de pruebas si tienes uno.
Activa «Private Channel Obfuscation»
Es el interruptor que Discord ha puesto para probarlo. También se puede pedir por código, con la capacidad
1 << 15en el Identify, pero el interruptor es más fácil.Reinicia el bot
La caché se llena al conectarse. Si no la rehaces, seguirás viendo los datos de antes.
Crea un canal que no pueda ver
Hazlo privado, sin dar acceso al rol del bot, y lanza las funciones que recorren canales. Si en un registro sale ___hidden___ o algo falla, ya sabes qué hay que cambiar.
Cómo saber si un canal está oculto en tu código
Discord pide mirar el flag CHANNEL_OBFUSCATED y no fiarse del nombre. Pero solo viene en lo que llega por el Gateway, y a 5 de noviembre de 2026 las librerías aún no lo ponen fácil: discord-api-types ya trae ChannelFlags.ChannelObfuscated, pero en discord.py y en la clase de canales de discord.js no hemos encontrado forma directa de leerlo en un canal normal.
Lo que funciona en las dos es preguntar por el permiso, que además es lo que de verdad quieres saber. Así te quedas solo con los canales que tu bot puede ver:
def canales_visibles(guild: discord.Guild):
yo = guild.me
return [c for c in guild.channels if c.permissions_for(yo).view_channel]// viewable mira el permiso «Ver canales» del propio bot
const visibles = guild.channels.cache.filter((c) => c.viewable);Qué cambiar en tu bot
Guarda ids, no nombres
El nombre de un canal oculto no vale, y todos se llamarán igual. Guarda el id: es de los pocos datos que siguen siendo buenos. Con el Modo desarrollador activado en Discord, se copia con clic derecho → «Copiar ID del canal».
Salta los canales que no ves
Antes de recorrer canales, fíltralos como en el ejemplo de arriba. Si el bot intenta hacer algo en uno que no ve, Discord le contesta con el error Missing Access.
Di qué falta en vez de callarlo
Si tu bot hace copias o auditorías, avisa de cuántos canales se ha saltado: «No puedo ver 3 canales. Dame Ver canales para incluirlos». Un informe incompleto que parece completo es peor que un aviso.
Pide los canales por el camino que toca
Si usas
fetch_channels()en discord.py oguild.channels.fetch()en discord.js, ten en cuenta que van por HTTP: los ocultos simplemente no vendrán.
Si tu bot necesita ver un canal
Dale permiso, porque no hay otra forma: en «Editar canal» → «Permisos», añade el rol del bot y activa «Ver canales». Si son muchos, hazlo en la categoría. Para saber qué permisos pedir en el enlace de invitación, usa la calculadora de permisos de bot.
Actualizar discord.py o discord.js no te devolverá los nombres, porque el cambio está en los servidores de Discord. Y lo que ha publicado no incluye ninguna forma de seguir como antes.
Si tu bot está en NapNodes
El cambio es de Discord y es igual en cualquier sitio donde esté tu bot: no hay nada que tocar en el servidor, solo en tu código.
Sube el código nuevo
En «Archivos», o desde tu repositorio de GitHub si lo tienes puesto en «Configuración».
Pulsa «Reiniciar»
Un bot lee su código al arrancar.
Mira la «Consola»
Ahí sale lo que escribe tu bot, también si te aparece un ___hidden___ en sus registros.
Preguntas frecuentes
¿Qué significa ___hidden___ en un canal de Discord?
Que tu bot no tiene permiso para ver ese canal, así que Discord le esconde el nombre y casi todos sus datos. No es un error ni un canal nuevo: es el canal de siempre, oculto para ese bot.
¿Cuándo empieza a ocultar Discord los canales a los bots?
El 16 de noviembre de 2026, para todos los bots. Antes solo se puede probar por el Gateway, con el interruptor «Private Channel Obfuscation» del portal de desarrolladores.
¿Tengo que cambiar algo en mi bot?
Solo si lee datos de canales que no puede ver: copias del servidor, auditorías, informes o búsquedas de canales por nombre. Si solo trabaja en sus canales, Discord dice que no le afecta.
¿Se arregla actualizando discord.py o discord.js?
No. El cambio está en Discord, no en la librería. Para que tu bot vuelva a ver un canal hay que darle el permiso «Ver canales» en él.
¿Por qué desaparecen canales de lo que devuelve la API?
Porque desde esa fecha la lista de canales por HTTP omite los que tu bot no ve, sin error. Por el Gateway siguen llegando, pero con los datos ocultos.
¿Cómo sé qué canales puede ver mi bot?
Pregunta por su permiso: en discord.py, channel.permissions_for(guild.me).view_channel; en discord.js, channel.viewable.
¿Te ha servido esta guía?
¿Lo montamos?
Hosting de bots de Discord desde 1,50 € al mes, sin sobreventa: tu RAM es solo tuya. Y si quieres empezar sin pagar, tienes un bot de Discord gratis, sin tarjeta.
Herramienta gratis: Permisos de un bot de Discord. Marca los permisos de tu bot en castellano y sal con el número y el enlace de invitación; o pega un número y mira qué permisos da.
Sigue leyendo
- «La aplicación no ha respondido» en tu bot de Discord: Unknown interaction y cómo arreglarlo
Por qué tu bot de Discord dice «La aplicación no ha respondido» o «Unknown interaction» (10062, 40060) y cómo arreglarlo en discord.py y discord.js.
- «Missing Access» y «Missing Permissions» en tu bot de Discord: errores 50001 y 50013
Qué significan Missing Access (50001) y Missing Permissions (50013) en un bot de Discord, en qué se diferencian y cómo arreglarlos en discord.py y discord.js.
- Mi bot de Discord no responde (o sale desconectado): causas y soluciones
Tu bot de Discord no contesta o sale desconectado: token, Message Content Intent, permisos, error 429… Cada error y su arreglo en discord.py y discord.js.