Code to Delete all Watch Later youtube Playlist

 1. Code is Copy  from the Github Link

qoomon/youtube_clean_watch_later_videos.js

2. Paste the Below code to the console of youtube videos

3.Open Youtube and select watch later in Desktop and then ctrl+shift+j and then paste code in console

4.Code---------------->

// This script will remove all videos from watch later list 
//
// Usage
//
// #1 go to https://www.youtube.com/playlist?list=WL
// #2 run following script in your browser console
//    adjust REMOVE_BUTTON_TEXT accordingly to your language, see examples below
(async function() {

  const REMOVE_BUTTON_TEXT = 'Remove from Watch later'
  // de-DE:      const REMOVE_BUTTON_TEXT = 'Aus "Später ansehen" entfernen' 
  // pt-BR:      const REMOVE_BUTTON_TEXT = 'Remover de Assistir mais tarde'
  // swe-SE:     const REMOVE_BUTTON_TEXT = 'Ta bort från Titta senare'
  // zh-Hans-CN: const REMOVE_BUTTON_TEXT = '从稍后观看中移除'

  const playlistName = document.querySelector("#title a").text

  if(!confirm(`Are you sure to delete ALL videos from ${playlistName}?`)) {
    return
  }
  
  console.info("start...")
  while(true) {
    const videos = document.querySelectorAll('#primary ytd-playlist-video-renderer')
    if(videos.length == 0) break
    
    for (let videoElement of videos) {
      const videoTitle = videoElement.querySelector('a#video-title')
      console.info(`Remove Video\n`    
        + `  Title: ${videoTitle.innerText}\n`
        + `  URL: ${videoTitle.href}`)

      const actionMenuButton = videoElement.querySelector('#menu #button')
      console.debug("click actionMenuButton", actionMenuButton)
      actionMenuButton.click()

      const removeButton= await untilDefined(() => {
        for (const actionMenu of [...document.querySelectorAll('ytd-popup-container > tp-yt-iron-dropdown')]) {
          if(actionMenu => actionMenu.style.display !== "none") {
            for (const actionButton of [...actionMenu.querySelectorAll('tp-yt-paper-item')]) {
              if(actionButton.innerText.trim().toLowerCase() === REMOVE_BUTTON_TEXT.toLowerCase()){
                return actionButton
              }
            }
          }
        }
        console.debug("wait for removeButton")
      })
      console.debug("click removeButton", removeButton)
      removeButton.click()
      
      await sleep(200)
    }
  } 
  console.info("done!")

  // === util functions ========================================================
  
  async function sleep (timeout) { 
    return new Promise(res => setTimeout(res, timeout))
  }
  
  async function untilDefined(factory, checkInterval = 100) {
    while (true) {
      const value = factory()
      if (value != null) return value
      await sleep(checkInterval)
    }
  }
})();

Comments

Popular posts from this blog

Area of Triangle :- Given three sides(Using Heron's Formula)

py