如何获取直播的youtube频道状态?
How to get the live stream youtube channel status?
有没有办法知道直播结束与否的状态?我只得到了这项工作的直播流媒体 ID。
GET https://www.googleapis.com/youtube/v3/liveBroadcasts?part=id%2Csnippet%2Cstatus&mine=true&broadcastStatus=active&key={YOUR_API_KEY}
您应该会收到类似这样的回复:
{ "status": { "lifeCycleStatus": "live"}}
这个 link 应该可以完成工作
https://www.youtube.com/get_video_info?el=detailpage&hl=en&ps=default&video_id={stream or video id}
此 link 提供有关视频或流的信息。在我的情况下,它告诉我直播已经结束。
这是我获取广播和流媒体状态的代码:
广播状态获取:
liveStreamRequest = youtube.liveStreams()
.list("id,status")
.setId(liveBroadcast.getContentDetails()
.getBoundStreamId());
LiveStreamListResponse returnedList = liveStreamRequest.execute();
List<LiveStream> liveStreams = returnedList.getItems();
if (liveStreams != null && liveStreams.size() > 0) {
LiveStream liveStream = liveStreams.get(0);
if (liveStream != null)
while (!liveStream.getStatus().getStreamStatus()
.equals("active")) {
Thread.sleep(1000);
returnedList = liveStreamRequest.execute();
liveStreams = returnedList.getItems();
liveStream = liveStreams.get(0);
}
}
流媒体状态获取:
liveBroadRequest = youtube.liveBroadcasts().list("id,status");
liveBroadRequest.setBroadcastStatus("all");
LiveBroadcastListResponse liveBroadcastResponse = liveBroadRequest.execute();
List<LiveBroadcast> returnedList = liveBroadcastResponse.getItems();
if (returnedList != null && returnedList.size() > 0) {
liveBroadcastReq = returnedList.get(0);
if (liveBroadcastReq != null)
while (!liveBroadcastReq.getStatus().getLifeCycleStatus().equals("testing")) {
Thread.sleep(1000);
AppLog.d("Error","publish broadcast - getLifeCycleStatus: " + liveBroadcastReq.getStatus().getLifeCycleStatus());
liveBroadcastResponse = liveBroadRequest.execute();
returnedList = liveBroadcastResponse.getItems();
liveBroadcastReq = returnedList.get(0);
}
}
希望能帮到关心这个问题的人!
有没有办法知道直播结束与否的状态?我只得到了这项工作的直播流媒体 ID。
GET https://www.googleapis.com/youtube/v3/liveBroadcasts?part=id%2Csnippet%2Cstatus&mine=true&broadcastStatus=active&key={YOUR_API_KEY}
您应该会收到类似这样的回复:
{ "status": { "lifeCycleStatus": "live"}}
这个 link 应该可以完成工作
https://www.youtube.com/get_video_info?el=detailpage&hl=en&ps=default&video_id={stream or video id}
此 link 提供有关视频或流的信息。在我的情况下,它告诉我直播已经结束。
这是我获取广播和流媒体状态的代码:
广播状态获取:
liveStreamRequest = youtube.liveStreams()
.list("id,status")
.setId(liveBroadcast.getContentDetails()
.getBoundStreamId());
LiveStreamListResponse returnedList = liveStreamRequest.execute();
List<LiveStream> liveStreams = returnedList.getItems();
if (liveStreams != null && liveStreams.size() > 0) {
LiveStream liveStream = liveStreams.get(0);
if (liveStream != null)
while (!liveStream.getStatus().getStreamStatus()
.equals("active")) {
Thread.sleep(1000);
returnedList = liveStreamRequest.execute();
liveStreams = returnedList.getItems();
liveStream = liveStreams.get(0);
}
}
流媒体状态获取:
liveBroadRequest = youtube.liveBroadcasts().list("id,status");
liveBroadRequest.setBroadcastStatus("all");
LiveBroadcastListResponse liveBroadcastResponse = liveBroadRequest.execute();
List<LiveBroadcast> returnedList = liveBroadcastResponse.getItems();
if (returnedList != null && returnedList.size() > 0) {
liveBroadcastReq = returnedList.get(0);
if (liveBroadcastReq != null)
while (!liveBroadcastReq.getStatus().getLifeCycleStatus().equals("testing")) {
Thread.sleep(1000);
AppLog.d("Error","publish broadcast - getLifeCycleStatus: " + liveBroadcastReq.getStatus().getLifeCycleStatus());
liveBroadcastResponse = liveBroadRequest.execute();
returnedList = liveBroadcastResponse.getItems();
liveBroadcastReq = returnedList.get(0);
}
}
希望能帮到关心这个问题的人!