diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/playlist/PlaylistInfo.java b/extractor/src/main/java/org/schabi/newpipe/extractor/playlist/PlaylistInfo.java index 87fcb947f..1b1580252 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/playlist/PlaylistInfo.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/playlist/PlaylistInfo.java @@ -45,6 +45,9 @@ public class PlaylistInfo extends ListInfo { extractor.getServiceId(), extractor.getLinkHandler(), extractor.getName()); + // collect uploader extraction failures until we are sure this is not + // just a playlist without an uploader + List uploaderParsingErros = new ArrayList(3); try { info.setOriginalUrl(extractor.getOriginalUrl()); @@ -64,23 +67,31 @@ public class PlaylistInfo extends ListInfo { try { info.setUploaderUrl(extractor.getUploaderUrl()); } catch (Exception e) { - info.addError(e); + info.setUploaderUrl(""); + uploaderParsingErros.add(e); } try { info.setUploaderName(extractor.getUploaderName()); } catch (Exception e) { - info.addError(e); + info.setUploaderName(""); + uploaderParsingErros.add(e); } try { info.setUploaderAvatarUrl(extractor.getUploaderAvatarUrl()); } catch (Exception e) { - info.addError(e); + info.setUploaderAvatarUrl(""); + uploaderParsingErros.add(e); } try { info.setBannerUrl(extractor.getBannerUrl()); } catch (Exception e) { info.addError(e); } + // do not fail if everything but the uploader infos could be collected + if (uploaderParsingErros.size() > 0 && + (!info.getErrors().isEmpty() || uploaderParsingErros.size() < 3)) { + info.addAllErrors(uploaderParsingErros); + } final InfoItemsPage itemsPage = ExtractorHelper.getItemsPageOrLogError(info, extractor); info.setRelatedItems(itemsPage.getItems());