Hola a todos,
En primer lugar, ¡muchas gracias por todas las excelentes funciones proporcionadas por YT Center!
Me gustaría solicitar la adición de un botón "Agregar a la lista de reproducción" junto a los videos que aparecen en la página "Mis suscripciones", similar al botón "Agregar a" que aparece en cada página de video individual. La aplicación de Android ya tiene esto implementado, por lo que es un poco ridículo que la versión de escritorio no lo tenga. Hasta donde yo sé, la implementación debería ser bastante simple, ya que simplemente agregaría el botón Agregar a a cada elemento de video funcionaría totalmente.
¡Gracias por adelantado!
Muy similar al #2107
Las miniaturas de video definitivamente deben tener un botón para agregar a la lista de reproducción (no solo en la página de suscripción).
Frustrantemente, YouTube solía tener esto , hasta que en 2012 reemplazó el botón Agregar a la lista de reproducción con el botón Ver más tarde en la parte inferior derecha de las miniaturas de video.
Entonces parece que solo necesitamos hacer una sola solicitud de publicación de ajax, que devolverá el HTML del menú Agregar a (bueno, devuelve XML, pero el elemento root->html_content
contiene el HTML del menú).
La solicitud es para https://www.youtube.com/addto_ajax?action_get_dropdown=1&hide_watch_later=false
, y el cuerpo debe ser x-www-form-urlencoded
con video_ids
, session_token
(y posiblemente src_playlist_id
).
Vale, parece que session_token
y src_playlist
no son necesarios.
La siguiente solicitud funcionó bien para mí:
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'))