Hola, estoy usando el paquete https://www.npmjs.com/package/ytfps para obtener las URL y los títulos de las listas de reproducción de YouTube. El formato dado como respuesta a ytfps(url).then(playlist =>{console.log(util.inspect(playlist))} es el siguiente:
{ title: 'Music Playlist', url: 'https://www.youtube.com/playlist?list=PLoXvI0xCls_7WZpfvrqwBNqlnZTMylyTvdo6', id: '7WZpfvrqwBNqlnZTMylyTvdo6', video_count: 16, view_count: 16, description: '', isUnlisted: false, thumbnail_url: 'https://i.ytimg.com/vi/jBmkNzfqFZUSW4/hqdefault.jpg', author: { name: 'Default', url: 'https://www.youtube.com/user/gadfgagaq', avatar_url: 'https://yt3.ggpht.com/ytc/AKedOLQoEJLXJMV2t3MRgadfqNuhWk46GwnYr7r1DAgnGbsQ=s176-ck-c0x00ffffff-no-rj' }, videos: [ { title: 'Barei - Say Yay! (Eurovision 2016 Spain)', url: 'https://www.youtube.com/watch?v=jBmkNzFZUW4', id: 'jBmkNzFZUW4', length: '3:07', milis_length: 187000, thumbnail_url: 'https://i.ytimg.com/vi/jBmkNzFZUW4/hqdefault.jpg', author: [Object] }, { title: 'Sound of Silence', url: 'https://www.youtube.com/watch?v=4S6sT_2gM2o', id: '4S6sT_2gM2o', length: '3:16', milis_length: 196000, thumbnail_url: 'https://i.ytimg.com/vi/4S6sT_2gM2o/hqdefault.jpg', author: [Object] }, ] }Lo que quiero es obtener 2 matrices, una de URL y otra de títulos, así:
url= [https://www.youtube.com/watch?v=jBmkNzFZUW4', 'https://www.youtube.com/watch?v=4S6sT_2gM2o', and so on... ] titles =['Barei - Say Yay! (Eurovision 2016 Spain)', 'Sound of Silence', and so on ]Entonces, ¿cuál es la mejor manera de extraer esas 2 matrices?
Puede declarar dos matrices separadas, mapear la matriz de videos en su objeto y empujar esas matrices en consecuencia,
Me gusta:
const videoTitle = []; const videoUrl = []; playlist.videos.map(v => { videoTitle.push(v.title) videoUrl.push(v.url); });Solo necesitas iterar videos. Luego, para cada video, extrae la URL y coloca el resultado en una matriz de URL. Lo mismo para el título, extrae el título y coloca el resultado en una matriz de títulos.
Algo como :
const urls = []; const titles = []; playlist.videos.forEach(video => { urls.push(video.url); titles.push(video.title); }); console.log(urls); console.log(titles);prueba esto :
let urls = []; let titles = []; playlist.videos.forEach(element => { urls.push(element.url); titles.push(element.title); }); console.log("urls",urls); console.log("titles",titles);