Skip to content

Commit be79f20

Browse files
authored
Merge pull request #219 from Redirion/patch-1
Allow PlayLists with missing uploader
2 parents 43b54cc + 035994b commit be79f20

1 file changed

Lines changed: 16 additions & 3 deletions

File tree

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

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
import org.schabi.newpipe.extractor.utils.ExtractorHelper;
1212

1313
import java.io.IOException;
14+
import java.util.ArrayList;
15+
import java.util.List;
1416

1517
public class PlaylistInfo extends ListInfo<StreamInfoItem> {
1618

@@ -45,6 +47,9 @@ public static PlaylistInfo getInfo(PlaylistExtractor extractor) throws Extractio
4547
extractor.getServiceId(),
4648
extractor.getLinkHandler(),
4749
extractor.getName());
50+
// collect uploader extraction failures until we are sure this is not
51+
// just a playlist without an uploader
52+
List<Throwable> uploaderParsingErrors = new ArrayList<Throwable>(3);
4853

4954
try {
5055
info.setOriginalUrl(extractor.getOriginalUrl());
@@ -64,23 +69,31 @@ public static PlaylistInfo getInfo(PlaylistExtractor extractor) throws Extractio
6469
try {
6570
info.setUploaderUrl(extractor.getUploaderUrl());
6671
} catch (Exception e) {
67-
info.addError(e);
72+
info.setUploaderUrl("");
73+
uploaderParsingErrors.add(e);
6874
}
6975
try {
7076
info.setUploaderName(extractor.getUploaderName());
7177
} catch (Exception e) {
72-
info.addError(e);
78+
info.setUploaderName("");
79+
uploaderParsingErrors.add(e);
7380
}
7481
try {
7582
info.setUploaderAvatarUrl(extractor.getUploaderAvatarUrl());
7683
} catch (Exception e) {
77-
info.addError(e);
84+
info.setUploaderAvatarUrl("");
85+
uploaderParsingErrors.add(e);
7886
}
7987
try {
8088
info.setBannerUrl(extractor.getBannerUrl());
8189
} catch (Exception e) {
8290
info.addError(e);
8391
}
92+
// do not fail if everything but the uploader infos could be collected
93+
if (uploaderParsingErrors.size() > 0 &&
94+
(!info.getErrors().isEmpty() || uploaderParsingErrors.size() < 3)) {
95+
info.addAllErrors(uploaderParsingErrors);
96+
}
8497

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

0 commit comments

Comments
 (0)