Merge pull request #651 from TeamNewPipe/fix/streamType

[YouTube] Fix getting stream type of live streams
This commit is contained in:
Tobi 2021-06-12 17:57:18 +02:00 committed by GitHub
commit 0cb48e36bd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 11 additions and 6 deletions

View File

@ -62,16 +62,21 @@ public class YoutubeStreamInfoItemExtractor implements StreamInfoItemExtractor {
} }
final JsonArray badges = videoInfo.getArray("badges"); final JsonArray badges = videoInfo.getArray("badges");
for (Object badge : badges) { for (final Object badge : badges) {
if (((JsonObject) badge).getObject("metadataBadgeRenderer").getString("label", EMPTY_STRING).equals("LIVE NOW")) { if (((JsonObject) badge).getObject("metadataBadgeRenderer")
.getString("label", EMPTY_STRING).equals("LIVE NOW")) {
return cachedStreamType = StreamType.LIVE_STREAM; return cachedStreamType = StreamType.LIVE_STREAM;
} }
} }
final String style = videoInfo.getArray("thumbnailOverlays").getObject(0) final JsonArray thumbnailOverlays = videoInfo.getArray("thumbnailOverlays");
.getObject("thumbnailOverlayTimeStatusRenderer").getString("style", EMPTY_STRING); for (final Object object : thumbnailOverlays) {
if (style.equalsIgnoreCase("LIVE")) { final JsonObject thumbnailOverlay = (JsonObject) object;
return cachedStreamType = StreamType.LIVE_STREAM; if (thumbnailOverlay.has("thumbnailOverlayNowPlayingRenderer")
|| thumbnailOverlay.getObject("thumbnailOverlayTimeStatusRenderer")
.getString("style", EMPTY_STRING).equalsIgnoreCase("LIVE")) {
return cachedStreamType = StreamType.LIVE_STREAM;
}
} }
return cachedStreamType = StreamType.VIDEO_STREAM; return cachedStreamType = StreamType.VIDEO_STREAM;