Allow PlayLists with missing uploader

This supports PR 2724 in NewPipe
This commit is contained in:
Redirion 2019-12-07 12:49:42 +01:00 committed by GitHub
parent 43b54ccc3c
commit cdf41b868c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 14 additions and 3 deletions

View File

@ -45,6 +45,9 @@ public class PlaylistInfo extends ListInfo<StreamInfoItem> {
extractor.getServiceId(),
extractor.getLinkHandler(),
extractor.getName());
// collect uploader extraction failures until we are sure this is not
// just a playlist without an uploader
List<Throwable> uploaderParsingErros = new ArrayList<Throwable>(3);
try {
info.setOriginalUrl(extractor.getOriginalUrl());
@ -64,23 +67,31 @@ public class PlaylistInfo extends ListInfo<StreamInfoItem> {
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<StreamInfoItem> itemsPage = ExtractorHelper.getItemsPageOrLogError(info, extractor);
info.setRelatedItems(itemsPage.getItems());