I made this code using claude to have a bookmarklet url that works for playlist and copies the necessary json but the playlist has to be from a single channel and all vidoes need to be fully loaded so scroll to the bottom
javascript:(function(){var items=document.querySelectorAll('ytd-playlist-video-renderer');var name='Unknown';var nc=items[0]&&items[0].querySelector('ytd-channel-name a,#channel-name a,[class*="channel"] a');if(nc)name=nc.textContent.trim();var vids=[];items.forEach(function(el){var a=el.querySelector('a#video-title');var id='';var m=(a&&a.href||'').match(/[?&]v=([^&]+)/);if(m)id=m[1];var title=a?a.textContent.trim():'';var t=el.querySelector('#text.ytd-thumbnail-overlay-time-status-renderer,span.ytd-thumbnail-overlay-time-status-renderer');var dur=0;if(t){var p=t.textContent.trim().split(':').map(Number);dur=p.length===3?p[0]*3600+p[1]*60+p[2]:p[0]*60+p[1];}vids.push({id:id,title:title,durationSec:dur});});var out=JSON.stringify({name:name,videos:vids},null,2);navigator.clipboard.writeText(out).then(function(){alert('Copied '+vids.length+' videos to clipboard!');}).catch(function(){var ta=document.createElement('textarea');ta.value=out;document.body.appendChild(ta);ta.select();document.execCommand('copy');document.body.removeChild(ta);alert('Copied '+vids.length+' videos to clipboard!');});})()
Please authenticate to join the conversation.
Completed
General Feature Request
2 months ago

Elijah Grato
Get notified by email when there are changes.
Completed
General Feature Request
2 months ago

Elijah Grato
Get notified by email when there are changes.