Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

151
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!