Hola, estoy tratando de resolver un problema con Discord Music Bot, funciona bien con las canciones y listas de reproducción de Spotify, pero las listas de reproducción de Youtube no (aunque las canciones sí funcionan). Puedo agregar canción por canción a la cola pero no una lista.
Este es el error:
music_message 476: TypeError: arr no es iterable
en esta parte del código:
if (isYoutube(qry) && isYoutubePlaylist(qry)) { try { const arr = await youtube_tracks_from_playlist(qry); for (let item of arr) addToQueue(item, mapKey) message.react(EMOJI_GREEN_CIRCLE) } catch (e) { console.log('music_message 476:' + e) message.channel.send('Failed to process playlist: ' + qry); } }Pero debido al hecho de que el error es que no se puede iterar, supongo que el error proviene de antes y del formato del objeto. Así que aquí está la función:
async function youtube_tracks_from_playlist(url, isretry=false) { const data = await ytlist(url, 'url'); console.log("Type of youtube data: " + typeof data) console.log("Data: " + data) if (data && 'data' in data && 'playlist' in data.data && data.data.playlist && data.data.playlist.length) { return data.data.playlist } else { if (!isretry) { console.log('retrying yt playlist processing') return await youtube_tracks_from_playlist(url, true); } else { return null; } } }Y en caso de que ayude, aquí están las salidas de la consola a tipos de datos y definición de ytlist:
const ytlist = require('youtube-playlist');Tipo de datos de youtube: objeto
Datos: [objeto Objeto]
Tipo de arr: objeto
arr: nulo
Entonces, no tengo idea si ese [objeto Objeto] es lo común que se supone que debo obtener, o ¿cuál es el problema?