Skip to content

Commit cdf41b8

Browse files
authored
Allow PlayLists with missing uploader
This supports PR 2724 in NewPipe
1 parent 43b54cc commit cdf41b8

1 file changed

Lines changed: 14 additions & 3 deletions

File tree

extractor/src/main/java/org/schabi/newpipe/extractor/playlist/PlaylistInfo.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ public static PlaylistInfo getInfo(PlaylistExtractor extractor) throws Extractio
4545
extractor.getServiceId(),
4646
extractor.getLinkHandler(),
4747
extractor.getName());
48+
// collect uploader extraction failures until we are sure this is not
49+
// just a playlist without an uploader
50+
List<Throwable> uploaderParsingErros = new ArrayList<Throwable>(3);
4851

4952
try {
5053
info.setOriginalUrl(extractor.getOriginalUrl());
@@ -64,23 +67,31 @@ public static PlaylistInfo getInfo(PlaylistExtractor extractor) throws Extractio
6467
try {
6568
info.setUploaderUrl(extractor.getUploaderUrl());
6669
} catch (Exception e) {
67-
info.addError(e);
70+
info.setUploaderUrl("");
71+
uploaderParsingErros.add(e);
6872
}
6973
try {
7074
info.setUploaderName(extractor.getUploaderName());
7175
} catch (Exception e) {
72-
info.addError(e);
76+
info.setUploaderName("");
77+
uploaderParsingErros.add(e);
7378
}
7479
try {
7580
info.setUploaderAvatarUrl(extractor.getUploaderAvatarUrl());
7681
} catch (Exception e) {
77-
info.addError(e);
82+
info.setUploaderAvatarUrl("");
83+
uploaderParsingErros.add(e);
7884
}
7985
try {
8086
info.setBannerUrl(extractor.getBannerUrl());
8187
} catch (Exception e) {
8288
info.addError(e);
8389
}
90+
// do not fail if everything but the uploader infos could be collected
91+
if (uploaderParsingErros.size() > 0 &&
92+
(!info.getErrors().isEmpty() || uploaderParsingErros.size() < 3)) {
93+
info.addAllErrors(uploaderParsingErros);
94+
}
8495

8596
final InfoItemsPage<StreamInfoItem> itemsPage = ExtractorHelper.getItemsPageOrLogError(info, extractor);
8697
info.setRelatedItems(itemsPage.getItems());

0 commit comments

Comments
 (0)