[Melissa Zhang]> Bulk-delete Watch Later Playlist

A watercolor painting of a russet potato. Sometimes I don't want to watch the dregs of my "Watch later" playlist and just want to delete them. But YouTube doesn't give you an easy way to do this. I'm on a Windows PC with dual monitor, for context.


  1. Download AutoIt (minimal installment is fine). Put the code below in a file with extension ".au3". Keep both the code and the file location open, so that you can edit the code and run the program later, respectively.
  2. Open your Watch later (WL) playlist. Find the (x,y) coordinates of the vertical ellipsis to the right of the first video you want to delete; write this down. Click on it, and find the (x,y) coordinates of the "Remove from Watch later" button in the drop down menu; write this down.
  3. Put those coordinates into the code (see in-code comments to find where). You can also edit other stuff:
  4. Run the program. If you're not on a dual desktop, you could of course shrink your windows to have both the File Explorer and WL window open at the same time. Or you could use AutoIt to wait until WL is the active window.


The following was modified from the AutoIt Wiki.

 Global $CheckSwap = RegRead("HKEY_CURRENT_USER\Control Panel\Mouse", "SwapMouseButtons")
 Global $MousePrimary, $MouseSecondary
 If $CheckSwap = 1 Then
     $MousePrimary = "right"
     $MouseSecondary = "left"
     $MousePrimary = "left"
     $MouseSecondary = "right"
; ************************************************* ;
; Change your settings here                         ;
; vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv ;
Global $ExitKey = "{ESC}"
Global $ClickMouse = $MousePrimary
Global $ClickHamster = $MouseSecondary
HotKeySet($ExitKey, '_Exit') ; press $ExitKey to escape AutoIt
; =========================
; wait_time big = takes longer, more time to ESC if needed
Global $wait_time = 100 ; milliseconds
; input the position of the ellipsis and remove buttons
Global $WLellipsis = [1475, 315] 
Global $WLremove = [1475, 450]
; total number of videos from top of WL list to delete
Global $numWLvideos = 10
For $i = 1 To $numWLvideos
	MouseMove ($WLellipsis[0], $WLellipsis[1])
	MouseMove ($WLremove[0], $WLremove[1])
; =====================