Para validar si YouTube (o Google) detecta tu configuración como «Fake» o «Real», no basta con mirar una web de fingerprints genérica. Debemos interrogar al navegador igual que lo hace el reproductor de YouTube: mediante la API de Media Capabilities y el renderizado de WebGL.
Aquí tienes un script de validación que puedes ejecutar en Camoufox. Este script simula las preguntas que YouTube hace «entre bambalinas»:
python
from camoufox.sync_api import Camoufox
def validate_youtube_stack(page):
validation_script = """
(async () => {
const results = {};
// 1. ¿Qué GPU ve realmente el navegador?
const canvas = document.createElement('canvas');
const gl = canvas.getContext('webgl');
const debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
results.gpu = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);
// 2. ¿El stack de video es COHERENTE con esa GPU? (Prueba AV1)
const av1Config = {
type: 'media-source',
video: {
contentType: 'video/mp4; codecs="av01.0.05M.08"',
width: 1920, height: 1080, bitrate: 5000000, framerate: 60
}
};
try {
const cap = await navigator.mediaCapabilities.decodingInfo(av1Config);
results.av1_supported = cap.supported;
results.av1_smooth = cap.smooth; // Si es falso en una RTX 3080, es sospechoso
results.av1_powerEfficient = cap.powerEfficient;
} catch (e) { results.av1_supported = "Error"; }
// 3. Verificación de "Native Code" (Detección de inyección)
results.is_now_native = performance.now.toString().includes('[native code]');
return results;
})()
"""
return page.evaluate(validation_script)
# Ejecución de prueba
with Camoufox(os="windows", humanize=True) as browser:
page = browser.new_page()
# Usamos YouTube para que el contexto sea real
page.goto("https://www.youtube.com")
report = validate_youtube_stack(page)
print("--- REPORTE DE COHERENCIA ---")
print(f"GPU Detectada: {report['gpu']}")
print(f"Soporte AV1: {report['av1_supported']} (Smooth: {report['av1_smooth']})")
print(f"Inyección Detectada: {'NO' if report['is_now_native'] else 'SÍ'}")
# Lógica de decisión
if "RTX" in report['gpu'] and not report['av1_supported']:
print("ALERTA: Incoherencia grave. Una RTX debe soportar AV1.")
elif "Intel HD" in report['gpu'] and report['av1_supported']:
print("ALERTA: Incoherencia grave. GPU antigua declarando soporte moderno.")
else:
print("RESULTADO: Perfil Coherente.")
Usa el código con precaución.
¿Qué buscar en los resultados?
av1_smooth: Si tu GPU emulada es una RTX 3080 perosmoothesfalse, YouTube pensará que eres un emulador o un dispositivo virtualizado, ya que una 3080 real decodifica AV1 sin esfuerzo.is_now_native: Si saleFalse, significa que el script de ruido (Jitter) que inyectamos es visible. Si usas la Opción 1 (Pure Native) de mi respuesta anterior, siempre debería salirTrue.powerEfficient: Para laptops (como perfiles de macOS), este valor debe sertrue. Si esfalse, indica que el navegador está usando la CPU para decodificar en lugar de la GPU, lo cual es una señal típica de bot.
Cómo mejorar el «Trust Score» en YouTube:
Si el validador te da errores de coherencia, la solución definitiva es ajustar el config nativo de Camoufox para que el motor de video coincida con la GPU:
- Si emulas Apple M3: Activa AV1.
- Si emulas Apple M1/M2: Desactiva AV1 (
media.av1.enabled: False) pero mantén VP9 activo. Esto es lo que un Mac real reportaría.
¿Quieres que te proporcione los diccionarios de configuración exactos para Apple M2 y para NVIDIA RTX 4090 para que los tengas listos para copiar y pegar?
Siguiente paso: ¿Prefieres optimizar para Windows (NVIDIA) o para macOS (Apple Silicon)?
Deja una respuesta