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

436
Vistas
Cambie la hora actual del video de YouTube sin usar la API de YouTube

Estoy escribiendo una extensión de Chrome (que NO usa la API del reproductor de YouTube para incrustaciones de iframe), en la que quiero agregar la funcionalidad para saltar a una determinada marca de tiempo en un video de YouTube. Entonces, tendría una marca de tiempo en el formato HH: MM: SS, y al hacer clic en ella, el tiempo del video "buscaría" esa marca de tiempo. Encontré una respuesta aquí que usa el siguiente código:

 document.getElementById("movie_player").seekTo(seconds,true);

Sin embargo, cada vez que intento inyectar este código a través de un script de contenido, aparece este error:

Error en el controlador de eventos: TypeError: document.getElementById(...).seekTo no es una función

Compartiré mi código también para aclaración. Primero, el popup.js:

 chrome.tabs.query({active: true, currentWindow: true}, function(tabs) { chrome.tabs.sendMessage(tabs[0].id, {message: scroll_time}, null); });

donde scroll_time es una cadena que representa la marca de tiempo del video. En el archivo contentScript se encuentra el siguiente código:

 var sec = parseInt(request.message); document.getElementById("movie_player").seekTo(sec, true);

También probé el siguiente código en el archivo popup.js:

 chrome.tabs.query({active: true, currentWindow: true}, tabs => { chrome.scripting.executeScript({ target: {tabId: tabs[0].id}, files: ['scrollVideo.js'], }, ()=>{ chrome.tabs.sendMessage(tabs[0].id,{scrollTo: scroll_time}); }); });

con el siguiente código en un archivo aparte:

 chrome.runtime.onMessage.addListener(message=>{ if (message.scrollTo) { scrollVid(message.scrollTo); }; }); function scrollVid(time) { var sec = parseInt(time); document.getElementById("movie_player").seekTo(sec, true); };

En ambos métodos, obtengo el error descrito anteriormente. Deseo evitar el uso de la API del reproductor de YouTube para iframe Embeds , donde se describe la función seekTo. ¿Hay alguna forma de lograr esto sin la API, o es la única manera de usarla? Por favor, ayúdenme, ya que esto es lo último que quiero que mi extensión pueda hacer.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Probé esto en una ventana de youtube y funcionó:

document.getElementsByTagName('video')[0].currentTime = 20

No estoy seguro de si esto cubre todo lo que necesita o si funcionará como se esperaba, pero espero que sí :)

about 4 years ago · Juan Pablo Isaza Denunciar
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