Skip to content

Commit ab77961

Browse files
committed
Extract trailer thumbnail in YT learning playlists
1 parent 4d683e7 commit ab77961

1 file changed

Lines changed: 8 additions & 3 deletions

File tree

extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubePlaylistExtractor.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232

3333
@SuppressWarnings("WeakerAccess")
3434
public class YoutubePlaylistExtractor extends PlaylistExtractor {
35+
private JsonArray initialAjaxJson;
3536
private JsonObject initialData;
3637
private JsonObject playlistInfo;
3738

@@ -43,9 +44,9 @@ public YoutubePlaylistExtractor(StreamingService service, ListLinkHandler linkHa
4344
public void onFetchPage(@Nonnull Downloader downloader) throws IOException, ExtractionException {
4445
final String url = getUrl() + "&pbj=1";
4546

46-
final JsonArray ajaxJson = getJsonResponse(url, getExtractorLocalization());
47+
initialAjaxJson = getJsonResponse(url, getExtractorLocalization());
4748

48-
initialData = ajaxJson.getObject(1).getObject("response");
49+
initialData = initialAjaxJson.getObject(1).getObject("response");
4950
YoutubeParsingHelper.defaultAlertsCheck(initialData);
5051

5152
playlistInfo = getPlaylistInfo();
@@ -264,7 +265,11 @@ public String getUrl() throws ParsingException {
264265

265266
@Override
266267
public String getThumbnailUrl() {
267-
return null;
268+
final JsonArray thumbnails = initialAjaxJson.getObject(1).getObject("playerResponse")
269+
.getObject("videoDetails").getObject("thumbnail").getArray("thumbnails");
270+
// the last thumbnail is the one with the highest resolution
271+
final String url = thumbnails.getObject(thumbnails.size() - 1).getString("url");
272+
return fixThumbnailUrl(url);
268273
}
269274

270275
@Override

0 commit comments

Comments
 (0)