// Run on playlist with thumbnail view, i.e. https://www.youtube.com/playlist?list=PLW_omwEM1aid1jtpNhqigEcRHAVsR-Hmz const YOUTUBE_ROOT = 'https://www.youtube.com' const videoItemClass = 'yt-simple-endpoint style-scope ytd-playlist-video-renderer' function getVideoInfos() { const videoLinks = document.getElementsByClassName(videoItemClass) const infos = [] for (let i = 0; i < videoLinks.length; i++) { const url = videoLinks[i].href const title = videoLinks[i].innerText.trim() infos.push({ url, title }) } return infos } function videoInfoToPlaylistEntry(info, idx) { const slot = idx + 1 return `File${slot}=${info.url} Title${slot}=${info.title} Length${slot}=0` } const videoInfos = getVideoInfos() const entries = videoInfos.map(videoInfoToPlaylistEntry) const playlist = ` [playlist] NumberOfEntries=${entries.length} ${entries.join('\n')} Version=2 ` console.log(playlist) document.querySelector('#copy')?.remove() copy(playlist)