2017-09-08 1 views
0

J'ai un script qui extrait la dernière vidéo d'une chaîne YouTube et l'intègre à ma page d'école. Cela fonctionne mais il y a deux problèmes. Il n'identifie pas immédiatement une vidéo publiée récemment. Y at-il un délai de YouTube avant qu'il se synchronise et les nouveaux messages peuvent s'inscrire?Youtube Script Delay

Deux le script s'exécute mais il empêche l'affichage d'autres contenus vidéo sur la page. Une idée de pourquoi cela pourrait être? J'ai regardé encore et encore et épuisé toutes les recherches que je pouvais penser.

Merci pour l'aide! Voici le code:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<iframe id="youtube_video" width="400" height="215" frameborder="0" allowfullscreen></iframe> 

<script> 
    var channelID = "UC0gcWgeEVOE7TDEKtLNnSuA"; 
    $.getJSON('https://api.rss2json.com/v1/api.json?rss_url=https%3A%2F%2Fwww.youtube.com%2Ffeeds%2Fvideos.xml%3Fchannel_id%3D'+channelID, function(data) { 
    var link = data.items[0].link; 
    var id = link.substr(link.indexOf("=")+1); 
    $("#youtube_video").attr("src","https://youtube.com/embed/"+id + "?controls=1&showinfo=0&rel=0"); 
    }); 
</script> 

Répondre

0

Je ne suis pas 100% clair sur ce que vous essayez d'atteindre - mais si vous essayez d'afficher plus de 1 vidéo, vous avez actuellement un seul élément #youtube_video. Plutôt que vous auriez probablement besoin de créer un élément pour chaque index du tableau de données et de créer des identifiants uniques tels que #youtube_video + link[i]

est ici un Fiddle: https://jsfiddle.net/e620tuy8/

var channelID = "UC0gcWgeEVOE7TDEKtLNnSuA"; 
$.getJSON('https://api.rss2json.com/v1/api.json?rss_url=https%3A%2F%2Fwww.youtube.com%2Ffeeds%2Fvideos.xml%3Fchannel_id%3D' + channelID, function(data) { 
    var container = $('.container'); 
    for (var i = 0; i < data.items.length; i++) { 
    var link = data.items[i].link; 
    var id = link.substr(link.indexOf("=") + 1); 
    var iframe = '<iframe id="youtube_video_id_' + i + '" src="https://youtube.com/embed/' + id + '?controls=1&showinfo=0&rel=0" width="400" height="215" frameborder="0" allowfullscreen></iframe>' 
    container.append(iframe) 
    } 
}); 
+0

Merci pour la réponse, je ne veux que la seule vidéo à montrer. Le problème est que ce n'est pas la dernière vidéo qui joue. Je ne sais pas s'il y a un délai entre le moment où une vidéo est mise en ligne sur YouTube et le script peut la détecter. Finalement, la vidéo la plus récente fonctionnera mais seulement après qu'elle a été téléchargée pendant quelques heures. S'il vous plaît laissez-moi savoir si c'est plus clair. Merci encore. – Adam

+0

Dans le violon que vous avez envoyé, il y a DEUX nouvelles vidéos qui ont été téléchargées il y a deux et une heure dans la chaîne, mais elles ne sont pas incluses lorsque le script extrait les vidéos. Merci. – Adam

0

trouvé, la réponse avec un peu plus creuser .

Merci à la réponse de Frank ici https://stackoverflow.com/a/43873099/5943182

Merci à tous ceux qui vu. Je ne sais toujours pas pourquoi le plus récent n'a pas été tiré dans le code ci-dessus, mais la méthode alternative fonctionne à merveille pour moi.