Test this script:
#include <GUIConstantsEx.au3>
#include <IE.au3>
#include <String.au3>
#include <Array.au3>
$Form1 = GUICreate("Form1", 700, 500, 192, 124)
$Button1 = GUICtrlCreateButton("View", 576, 24, 89, 41)
Global $oIE = _IECreate("https://www.youtube.com/playlist?list=PL4Jcq5zn02jKpjX0nqI1_fS7mEEb5tw6z", 1, 1, 0)
Sleep(1000)
Global $sHTML = _IEDocReadHTML($oIE)
$FirstChunks = _StringBetween($sHTML, 'pl-video-title-link yt-uix-tile-link yt-uix-sessionlink', '<div class="pl-video-owner')
;_ArrayDisplay($FirstChunks, '$FirstChunks')
Global $Checkbox1[UBound($FirstChunks)][2]
$x = 16
$y = 0
$iCheck = 0
For $a = 0 To UBound($FirstChunks) - 1
$actualdata = _StringBetween($FirstChunks[$a], '">', '</a>')
If Not IsArray($actualdata) Then ContinueLoop
$actualdata2 = _StringBetween($FirstChunks[$a], 'href="', '&')
If Not IsArray($actualdata2) Then ContinueLoop
$Checkbox1[$iCheck][0] = GUICtrlCreateCheckbox($actualdata[0], 24, $x, 500, 17)
$Checkbox1[$iCheck][1] = $actualdata2[0]
$iCheck += 1
$x = $x + 20
$y = $y + 1
Next
ReDim $Checkbox1[$iCheck][2] ;maybe some checkboxes aren't created (avoiding corupt data using ContinueLoop)
_ArrayDisplay($Checkbox1,'checkbox ids |URL-watchpart')
GUISetState(@SW_SHOW)
Sleep(1000)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
; check whether a button is pressed
For $x = 0 To UBound($Checkbox1) - 1
ConsoleWrite('X: ' & $x & @TAB & $Checkbox1[$x][0] & @TAB)
If BitAND(GUICtrlRead($Checkbox1[$x][0]), $GUI_CHECKED) = $GUI_CHECKED Then
ConsoleWrite('is checked')
; do what you want to do for Button pressed
ConsoleWrite("www.youtube.com/" & $Checkbox1[$x][1] & @CRLF)
_IECreate("www.youtube.com/" & $Checkbox1[$x][1])
GUICtrlSetState($Checkbox1[$x][0], $GUI_UNCHECKED) ;so you have toc check again and press view
ExitLoop ;as you can't see all tut's at same time
Else
ConsoleWrite('is not checked')
EndIf
ConsoleWrite('press View' & @CRLF)
Next
EndSwitch
WEnd
it should work like expected, but i can't test my internet is to poor (64 kbs).