Here's some code to get you started. You still need to get an API key. Follow the instructions here: https://developers.google.com/youtube/v3/getting-started
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oSC = ObjCreate("ScriptControl")
$oSC.language = "JScript"
$oSC.Eval("Array.prototype.Item=function(i){return this[i];};")
$YT_API_Key = ""
$oHTTP.Open("GET", "https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername=LinusTechTips&key="&$YT_API_Key, False)
$oHTTP.Send()
$oJSON = $oSC.Eval("(" & $oHTTP.responseText & ")")
If $oHTTP.status <> 200 Then
MsgBox(0, "Error ("&$oHTTP.status&")", "Domain: "&Execute("$oJSON.error.errors.Item(0).domain")&@CRLF&"Reason: "&Execute("$oJSON.error.errors.Item(0).reason")&@CRLF&"Message: "&Execute("$oJSON.error.errors.Item(0).message"))
Else
$YT_PL_ID = Execute("$oJSON.items.Item(0).contentDetails.relatedPlaylists.uploads")
If $YT_PL_ID == "" Then Exit MsgBox(0, "", "Could not get playlist ID")
$oHTTP.Open("GET", "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet%2CcontentDetails%2Cstatus&playlistId=UUXuqSBlHAE6Xw-yeJA0Tunw&key="&$YT_API_Key, False)
$oHTTP.Send()
$oJSON = $oSC.Eval("(" & $oHTTP.responseText & ")")
If $oHTTP.status <> 200 Then
MsgBox(0, "Error ("&$oHTTP.status&")", "Domain: "&Execute("$oJSON.error.errors.Item(0).domain")&@CRLF&"Reason: "&Execute("$oJSON.error.errors.Item(0).reason")&@CRLF&"Message: "&Execute("$oJSON.error.errors.Item(0).message"))
Else
MsgBox(0, "", "page 1 of "&(Execute("$oJSON.pageInfo.totalResults")/Execute("$oJSON.pageInfo.resultsPerPage")))
$iLength = Execute("$oJSON.items.length")
$iLength = ($iLength=="")?0:$iLength
For $i=0 To $iLength
$oItem = Execute("$oJSON.items.Item(0)")
MsgBox(0, $i&" of "&$iLength, "Title: "&Execute("$oItem.snippet.title"))
Next
EndIf
EndIf