Salut tout le monde,
Tout d'abord, merci beaucoup pour toutes les excellentes fonctionnalités fournies par YT Center !
J'aimerais demander l'ajout d'un bouton "Ajouter à la liste de lecture" à côté des vidéos qui s'affichent dans la page "Mes abonnements", similaire au bouton "Ajouter à" qui apparaît sur chaque page vidéo individuelle. L'application Android a déjà implémenté cela, il est donc quelque peu ridicule que la version de bureau ne le fasse pas. Autant que je sache, la mise en œuvre devrait être assez simple, car même simplement ajouter le bouton Ajouter à chaque élément vidéo fonctionnerait parfaitement.
Merci d'avance!
Très similaire à #2107
Les vignettes vidéo doivent absolument avoir un bouton d'ajout à la liste de lecture (pas seulement sur la page d'abonnement).
Frustrant, YouTube avait l'habitude d'avoir cela , jusqu'à ce qu'en 2012, ils remplacent le bouton d'ajout à la liste de lecture par le bouton regarder plus tard en bas à droite des vignettes vidéo.
Il semble donc que nous n'ayons besoin que d'une seule requête de publication ajax, qui renverra le code HTML du menu Ajouter à (enfin, il renvoie du XML, mais l'élément root->html_content
contient le code HTML du menu).
La requête est à https://www.youtube.com/addto_ajax?action_get_dropdown=1&hide_watch_later=false
, et le corps devrait être x-www-form-urlencoded
avec video_ids
, session_token
(et éventuellement src_playlist_id
).
Ok, on dirait que session_token
et src_playlist
ne sont pas nécessaires.
La requête suivante a bien fonctionné pour moi :
function getAddMenu(video, domElement) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function readyStateChange() {
if (this.readyState == 4 && this.status == 200) {
var html = xhttp.responseXML.getElementsByTagName('html_content')[0].textContent;
domElement.innerHTML = html;
}
};
xhttp.open('POST', '/addto_ajax?action_get_dropdown=1&hide_watch_later=false', true);
xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xhttp.send('video_ids=' + video);
}
getAddMenu('rh7kpkwXnwA', document.getElementById('foo'))