|
20 | 20 | import org.schabi.newpipe.extractor.search.InfoItemsSearchCollector; |
21 | 21 | import org.schabi.newpipe.extractor.search.SearchExtractor; |
22 | 22 | import org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper; |
23 | | -import org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubePlaylistLinkHandlerFactory; |
24 | | -import org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeStreamLinkHandlerFactory; |
25 | 23 | import org.schabi.newpipe.extractor.utils.JsonUtils; |
| 24 | +import org.schabi.newpipe.extractor.utils.Parser; |
26 | 25 | import org.schabi.newpipe.extractor.utils.Utils; |
27 | 26 |
|
28 | 27 | import java.io.IOException; |
|
33 | 32 |
|
34 | 33 | import javax.annotation.Nonnull; |
35 | 34 |
|
36 | | -import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.*; |
| 35 | +import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.fixThumbnailUrl; |
| 36 | +import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.getTextFromObject; |
| 37 | +import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.getUrlFromNavigationEndpoint; |
| 38 | +import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.getValidJsonResponseBody; |
37 | 39 | import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeSearchQueryHandlerFactory.MUSIC_ALBUMS; |
38 | 40 | import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeSearchQueryHandlerFactory.MUSIC_ARTISTS; |
39 | 41 | import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeSearchQueryHandlerFactory.MUSIC_PLAYLISTS; |
@@ -365,7 +367,12 @@ public long getViewCount() throws ParsingException { |
365 | 367 | .getObject(descriptionElements.size() - 3) |
366 | 368 | .getString("text"); |
367 | 369 | if (!isNullOrEmpty(viewCount)) { |
368 | | - return Utils.mixedNumberWordToLong(viewCount); |
| 370 | + try { |
| 371 | + return Utils.mixedNumberWordToLong(viewCount); |
| 372 | + } catch (final Parser.RegexException e) { |
| 373 | + // probably viewCount == "No views" or similar |
| 374 | + return 0; |
| 375 | + } |
369 | 376 | } |
370 | 377 | throw new ParsingException("Could not get view count"); |
371 | 378 | } |
@@ -421,10 +428,15 @@ public String getUrl() throws ParsingException { |
421 | 428 |
|
422 | 429 | @Override |
423 | 430 | public long getSubscriberCount() throws ParsingException { |
424 | | - final String viewCount = getTextFromObject(info.getArray("flexColumns").getObject(2) |
| 431 | + final String subscriberCount = getTextFromObject(info.getArray("flexColumns").getObject(2) |
425 | 432 | .getObject("musicResponsiveListItemFlexColumnRenderer").getObject("text")); |
426 | | - if (!isNullOrEmpty(viewCount)) { |
427 | | - return Utils.mixedNumberWordToLong(viewCount); |
| 433 | + if (!isNullOrEmpty(subscriberCount)) { |
| 434 | + try { |
| 435 | + return Utils.mixedNumberWordToLong(subscriberCount); |
| 436 | + } catch (final Parser.RegexException ignored) { |
| 437 | + // probably subscriberCount == "No subscribers" or similar |
| 438 | + return 0; |
| 439 | + } |
428 | 440 | } |
429 | 441 | throw new ParsingException("Could not get subscriber count"); |
430 | 442 | } |
|
0 commit comments