Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

155
Vistas
Acceder al reproductor de video React de Twitch desde un complemento/extensión

Quería crear botones que cambiaran las calidades de transmisión en Twitch para hacerlo más fácil en lugar de hacer clic tres veces (icono de configuración -> calidad -> calidad específica).

Decidí ocuparme de los complementos/extensiones más tarde e hice todo en un script de usuario dentro de ViolentMonkey para desarrollar, y pensé que simplemente agregar ese script como una entrada de content_scripts en el manifiesto haría que funcionara como una extensión, pero a mi sorpresa, la función no puede encontrar las propiedades de reacción para encontrar el 'reproductor de video real'.

El código que estoy usando para tomar el reproductor de video es este:

 function findPlayer() { try { let videoPlayer = null; function findReactNode(root, constraint) { if (root.stateNode && constraint(root.stateNode)) { return root.stateNode; } let node = root.child; while (node) { const result = findReactNode(node, constraint); if (result) { return result; } node = node.sibling; } return null; } let reactRootNode = null; let rootNode = document.querySelector('#root'); if (rootNode && rootNode._reactRootContainer && rootNode._reactRootContainer._internalRoot && rootNode._reactRootContainer._internalRoot.current) { reactRootNode = rootNode._reactRootContainer._internalRoot.current; } videoPlayer = findReactNode(reactRootNode, node => node.setPlayerActive && node.props && node.props.mediaPlayerInstance); videoPlayer = videoPlayer && videoPlayer.props && videoPlayer.props.mediaPlayerInstance ? videoPlayer.props.mediaPlayerInstance : null; if (videoPlayer) { return videoPlayer; } } catch(err) { console.log(err); } }

Noté que cuando traté de ejecutar la extensión, no hizo nada, así que, después de depurar un poco, descubrí que aunque rootNode regresa con éxito, en un script de usuario tiene todas las siguientes propiedades, pero cuando está en una extensión, le faltan los dos últimos, va de defineGetter a proto y listo.

 __defineGetter__ __defineSetter__ __lookupGetter__ __lookupSetter__ __proto__ __reactContainer$dbrtyzpjr3t _reactRootContainer <-- what I need

Incluso traté de buscar _reactRootContainer directamente, pero no hay muchos resultados de esto, y ninguno útil, también, traté de encontrar otras formas de entrometerme con las cosas internas de reacción de esta publicación: React: obtener un componente de un elemento DOM para depuración , que tampoco devuelve nada.

Alguien tiene alguna idea sobre cómo obtener el reproductor de video, no es necesario que sea a través de este método, nada que pueda usar para hacer videoPlayer.setQuality y demás.

¡Muchas gracias por adelantado!

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda