@@ -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