Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

435
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda