JavaScript - DUDAS SOBRE YOUTUBE

 
Vista:
sin imagen de perfil
Val: 4
Ha aumentado su posición en 27 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

DUDAS SOBRE YOUTUBE

Publicado por Damyan (2 intervenciones) el 19/03/2020 02:15:46
Saludos, esperando que se encuentren bien junto a sus cercanos,les cuento mi problema, quiero descargar una lista de 6.000 canciones de youtube, el problema es que debo pasarlas de mi lista de "videos que me gustan" a una lista x, ya que debe ser pública para poder descargarla y youtube puso privacidad privada a algunas listas , como ver mas tarde y la lista mencionada. así que debo realizar tres clicks por video en la página, obviamente en este siglo, debe haber un modo más inteligente de hacerlo y el que encontré es usar java script, el problema es que no estoy muy familiarizado con este lenguaje y quería pedirle que me ayudara un poco, este es el programa, el cual corro en la consola de mi navegador, aquí el link del script:

https://mega.nz/#!MB0ADIzB!IG9vhzjYNDgLYDo-bdX34_myvbWGXTT2eGUXMbCW4v0


problemas que detecto: *el algoritmo se realiza en un bucle infinito, si defino valor nulo a las bases de botones, da error indefinidamente, solo recargando la pagina se detiene *en el primer botón, no recorre la matriz ordenadamente, la recorre algo así como (largo=6), 6,1,6,1,6,2,6,2,6,2,6,3... y así *si introduzco una condición if para detenerlo al final, es como si no existiera el if y se queda con la sentencia. perdón por la extensión, estaría muy agradecido por la menor ayuda, gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 40
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

DUDAS SOBRE YOUTUBE

Publicado por Marlon (90 intervenciones) el 23/03/2020 11:14:18
Aquí tienes una mejor forma de hacerlo, espero te funcione.

Puedes ejecutar el codigo en la consola. y recargar la pagina cada vez que lo ejecutes


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/* con querySelectorAll seleccionamos todas las propiedades de nombre aria-label que
contengan el texto 'Menú de acciones' en cada video de la lista,
y los almacenamos en la variable videos, que en realidad es un arreglo.
*/
let videos = document.querySelectorAll('[aria-label="Menú de acciones"]')
let count = 0; // para recorrer el arreglo videos
 
/*
utilicé setTimeout que a diferencia de setInterval se ejecuta una unica vez
*/
function click_añadir(){
    setTimeout(()=>{
        /*pasados 3 segundos seleccionamos el boton 'Añadir a la lista de reproducción' del menu del video,
        luego pasamos a la funcion seleccionar lista.
        */
        document.getElementsByClassName('style-scope ytd-menu-service-item-renderer')[6].click(); // click en elemento 6 que retorna este arreglo
        /*(a mi me aparece en la posicion 6 sin embargo es mejor que esa parte la revises tu
            en la consola de elementos de la pagina)*/
        select_lista();
    }, 3000)
}
function select_lista(){
    /*Aqui pasados 3 segundos selecciona la lista de reproduccion a la que queremos pasar los videos.
    se incrementa en 1 el contador que recorre los videos de la lista.
    y volvemos a ejecutar la funcion principal pasarvideos.
    */
    setTimeout(()=>{
        document.getElementsByClassName('hidden style-scope paper-checkbox')[1].click();//aqui depende cual es el numero de la lista
        count++;
        console.log()//para saber en que video va
        setTimeout(pasarvideos, 3000);
    }, 3000)
}
 
function pasarvideos() {
    /*la condicion count<2 deberas remplazarlo por count<videos.length que es el arreglo de videos que hay en la lista
    o puedes cambiar el numero para hacer pruebas.
    */
 
    if(count<2){
        videos[count].click();//damos click en el menu del video
        click_añadir();//pasamos a la funcion click_añadir()
    }
}
pasarvideos();//llamamos a la funcion principal para que se ejecute.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 4
Ha aumentado su posición en 27 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

DUDAS SOBRE YOUTUBE

Publicado por damyan (2 intervenciones) el 24/05/2020 20:14:51
Me funcionó, muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar