🎮 Gaming
Secuestré el stream de mi PS5 con un truco de DNS y me ahorré $100
Queria compartir pantalla en Discord jugando en mi PS5. Sony solo te deja emitir a YouTube y Twitch, el boton "Broadcast" no va a Discord. La solucion que todo el mundo compra: una capture card de $100. Yo la resolvi con un servidor DNS y un archivo de configuracion.
El autor de esta guia, Yash Garg, publico el truco el 28 de septiembre y la comunidad de gaming lo recibio como lo que es: **una de esas exploits que te hacen preguntarte por que nunca se dio a conocer.** Funciona porque la consola resuelve el dominio de Twitch por DNS en cada transmision. Si controlas lo que DNS devuelve, controlas adonde va tu video.
El problema: la caja negra de Sony
La PS5 soporta RTMP, el protocolo que usan las transmisiones en vivo, pero solo contra los servidores que Sony decide. Remote Play Technically funciona: te conectas desde tu Mac y compartes la pantalla del Mac. El problema es que tienes que cablear el control, los audifonos y todo mas a la Mac. Ademas la calidad la manda la consola, no tu.
Ninguno de esos problemas es un bug. Es el producto.
El giro: la PS5 no tiene la IP de Twitch escrita
Este es el dato que lo cambia todo. **La consola no tiene hardcodeada la direccion del servidor de Twitch.** Cada vez que pulsas emitir, la PS5 hace una consulta DNS para averiguar a donde mandarse. Eso significa que no tienes que tocar la consola: solo tienes que mentirle al DNS.
El primer intento fue hacer pasar ingest.twitch.tv por el Mac. Fallo, porque ese host es solo un endpoint de descubrimiento: la PS5 le pregunta por HTTPS cual es el servidor regional y luego manda el stream ahi. Y el ingest real de Twitch usa RTMPS, que es RTMP sobre TLS. La consola valida el certificado contra CAs confiables y no hay forma de instalar una CA propia en una consola.
El segundo intento fue via YouTube, que usa RTMP plano en el puerto 1935. La consola envio el stream al Mac y funciono... durante 60 segundos. YouTube verifica periodicamente su API que la transmision este viva, nunca llego, y la PS5 corto la emision.
La solucion: espiar los logs de DNS
La respuesta llego al mirar los logs de dnsmasq mientras se emitia. La PS5 resolvia ingest.global-contribute.live-video.net, que resuelve a aps30.contribute.live-video.net. Ese si es el servidor RTMP real. Como ese dominio cubre todos los subdominios, falsearlo redirige el stream completo, sin problemas de certificado.
El config de dnsmasq es corto y todo el hack vive ahi:
server = 1.1.1.1
server = 8.8.8.8
# Redirigir el ingest de Twitch al Mac
address = /contribute.live-video.net/192.168.8.175
address = /ingest.global-contribute.live-video.net/192.168.8.175
address = /live.twitch.tv/192.168.8.175
log-queries
no-hosts
listen-address = 0.0.0.0
La pieza que lo hace indoloro es como le entregas el DNS. Garg usa un router GL.iNet con OpenWRT y le asigna su Mac como servidor DNS solo para el lease DHCP de la PS5:
uci add_list dhcp.lan.dhcp_option="tag:PS5,6,192.168.8.175"
uci commit dhcp
/etc/init.d/dnsmasq restart
El 6 es la opcion DHCP de servidor DNS. **La consola toma el cambio en su proximo DHCP renewal, sin que toques una sola configuracion en la PS5.** Eso es lo que separa esto de los hacks que requieren meter la consola en modo developer.
Recibir el stream: nginx-rtmp
Del otro lado hay un nginx-rtmp escuchando en el puerto 1935 esperando que la consola se identifique como Twitch:
rtmp {
server {
listen 1935;
chunk_size 4096;
application ps5 {
live on;
record off;
sync 10ms;
on_publish http://127.0.0.1:9988/on_publish;
}
}
}
El callback on_publish es el detalle mas elegante: nginx hace un POST a localhost cuando la PS5 empieza a emitir, y ahi aparece la URL RTMP lista para copiar. La consola ya esta empujando video en 1080p60, H.264 y AAC stereo directo a tu Mac.
Verlo en Discord sin pasar por OBS
Garg ni siquiera usa OBS. Tira directo a mpv con perfil de baja latencia y comparte la ventana:
mpv --profile=low-latency --audio-buffer=0.3 rtmp://127.0.0.1/ps5/stream-key
El delay queda por debajo de un segundo. Y lleva semanas funcionando sin un solo fallo.
Lo que esto revela
Me quede pensando en lo que revela la paradoja: **Sony lleva años cerrando el ecosistema de la PS5**, bloqueando controles Bluetooth de terceros, limitando la transmision a una lista corta de servicios. Todo eso es coherente con su estrategia comercial.
Pero el bug de fondo, el que la empresa resuelve entre dicho y mientras, es que confunden "queremos controlar el hardware" con "controlamos el hardware". En cuanto la resolucion de nombres la hace un dispositivo en tu red, la decision del fabricante es solo una sugerencia. La consola sigue haciendo exactamente lo que le dijeron, solo que nadie le dijo a quien.
Vale, si, parece un truco de red basico. Pero que Sony invierta millones en cerrarlo y el bloqueo siga exista unicamente porque nadie considero que el DNS lo resuelve tu router, y no la consola, dice mucho de donde quedaron las defensas reales. La diferencia entre "feature bloqueada" y "feature imposible" la escriben siempre los mismos: los que encontraron donde se rompe el sistema.
¿Ya tenias todo el hardware y te estaba bloqueando la consola, o es la primera vez que te pasa? Comparte tu caso con alguien que todavia esta pagando capture cards por esto.