Hallo alle,
ZunĂ€chst einmal vielen Dank fĂŒr all die groĂartigen Funktionen, die YT Center bietet!
Ich möchte das HinzufĂŒgen einer SchaltflĂ€che âZur Playlist hinzufĂŒgenâ neben den Videos anfordern, die auf der Seite âMeine Abonnementsâ angezeigt werden, Ă€hnlich der SchaltflĂ€che âHinzufĂŒgen zuâ, die auf jeder einzelnen Videoseite erscheint. Die Android-App hat dies bereits implementiert, daher ist es etwas lĂ€cherlich, dass die Desktop-Version dies nicht tut. Soweit mir bekannt ist, sollte die Implementierung ziemlich einfach sein, da ich sogar einfach die SchaltflĂ€che âHinzufĂŒgen zuâ zu jedem Videoelement hinzufĂŒgen wĂŒrde.
Vielen Dank im Voraus!
Sehr Àhnlich zu #2107
Video-Thumbnails sollten auf jeden Fall eine SchaltflĂ€che zum HinzufĂŒgen zur Wiedergabeliste haben (nicht nur auf der Abonnementseite).
Frustrierenderweise hatte YouTube dies frĂŒher , bis sie 2012 die SchaltflĂ€che "Zur Wiedergabeliste hinzufĂŒgen" durch die SchaltflĂ€che "SpĂ€ter ansehen" unten rechts in den Video-Miniaturansichten ersetzten.
Es sieht also so aus, als mĂŒssten wir nur eine einzige Ajax-Post-Anforderung stellen, die den HTML-Code des MenĂŒs âHinzufĂŒgen zuâ zurĂŒckgibt (naja, er gibt XML zurĂŒck, aber das root->html_content
-Element enthĂ€lt den HTML-Code des MenĂŒs).
Die Anfrage ist an https://www.youtube.com/addto_ajax?action_get_dropdown=1&hide_watch_later=false
, und der Körper sollte x-www-form-urlencoded
mit video_ids
, session_token
(und möglicherweise src_playlist_id
) lauten.
Ok, sieht so aus, als ob session_token
und src_playlist
nicht benötigt werden.
Folgende Anfrage hat bei mir gut funktioniert:
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'))