检查 YouTube 频道是否正在直播
Check if YouTube Channel is Live Streaming
我正在尝试构建一个 VB.net 网站,以便在直播时在频道名称旁边显示图像。我当前构建了包含 URL 和图像的页面,并且设置了搜索 API:
我知道这是有效的,因为我在正常跟随 link 时看到 JSON。
唯一的问题是我不知道如何在 VB 中发送 HTTP 请求。我打算在测试时在 page_load 上执行这个请求,但这是我得到的:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim request As WebRequest = WebRequest.Create("https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=[ChannelID]&type=video&eventType=live&key=[API-KEY]")
End Sub
如何在 VB.net 中发送此请求?我将如何读取返回的 JSON?
我能够将 JSON
return 编辑到 String
变量中:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim request As WebRequest = WebRequest.Create("https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=[ChannelID]&type=video&eventType=live&key=[API-KEY]")
Dim streamReader As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream)
Dim youtube As String = streamReader.ReadToEnd
MsgBox(youtube)
End Sub
我已将其修改为允许检查任何频道 ID 的函数。它最初 returned a boolean
,但我将其调整为 return and integer
以执行错误处理,而无需修改 return 语句或处理后面代码其他部分的函数调用。
Protected Function IsLiveStreaming(channelID As String) As Integer
Try
Dim request As WebRequest = WebRequest.Create("https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=" & channelID & "&type=video&eventType=live&key=[API-KEY]")
Dim response As WebResponse = request.GetResponse
Dim streamReader As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream)
Dim youtube As String = streamReader.ReadToEnd
Dim obj As Newtonsoft.Json.Linq.JObject = JObject.Parse(youtube)
Dim arr As JArray = obj("items")
If arr.Count > 0 Then
Return True
Else
Return False
End If
Catch ex As Exception
'Typically a 403 error from exceeding quota on YouTube api
Return -1
End Try
Return False
End Function
我正在尝试构建一个 VB.net 网站,以便在直播时在频道名称旁边显示图像。我当前构建了包含 URL 和图像的页面,并且设置了搜索 API:
我知道这是有效的,因为我在正常跟随 link 时看到 JSON。
唯一的问题是我不知道如何在 VB 中发送 HTTP 请求。我打算在测试时在 page_load 上执行这个请求,但这是我得到的:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim request As WebRequest = WebRequest.Create("https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=[ChannelID]&type=video&eventType=live&key=[API-KEY]")
End Sub
如何在 VB.net 中发送此请求?我将如何读取返回的 JSON?
我能够将 JSON
return 编辑到 String
变量中:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim request As WebRequest = WebRequest.Create("https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=[ChannelID]&type=video&eventType=live&key=[API-KEY]")
Dim streamReader As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream)
Dim youtube As String = streamReader.ReadToEnd
MsgBox(youtube)
End Sub
我已将其修改为允许检查任何频道 ID 的函数。它最初 returned a boolean
,但我将其调整为 return and integer
以执行错误处理,而无需修改 return 语句或处理后面代码其他部分的函数调用。
Protected Function IsLiveStreaming(channelID As String) As Integer
Try
Dim request As WebRequest = WebRequest.Create("https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=" & channelID & "&type=video&eventType=live&key=[API-KEY]")
Dim response As WebResponse = request.GetResponse
Dim streamReader As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream)
Dim youtube As String = streamReader.ReadToEnd
Dim obj As Newtonsoft.Json.Linq.JObject = JObject.Parse(youtube)
Dim arr As JArray = obj("items")
If arr.Count > 0 Then
Return True
Else
Return False
End If
Catch ex As Exception
'Typically a 403 error from exceeding quota on YouTube api
Return -1
End Try
Return False
End Function