diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeMusicArtistInfoItemExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeMusicArtistInfoItemExtractor.java index 477eaf709..7c0642c08 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeMusicArtistInfoItemExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeMusicArtistInfoItemExtractor.java @@ -1,5 +1,6 @@ package org.schabi.newpipe.extractor.services.youtube.extractors; +import com.grack.nanojson.JsonArray; import com.grack.nanojson.JsonObject; import org.schabi.newpipe.extractor.Image; import org.schabi.newpipe.extractor.channel.ChannelInfoItemExtractor; @@ -61,10 +62,14 @@ public class YoutubeMusicArtistInfoItemExtractor implements ChannelInfoItemExtra @Override public long getSubscriberCount() throws ParsingException { - final String subscriberCount = getTextFromObject(artistInfoItem.getArray("flexColumns") - .getObject(2) + final JsonArray flexColumns = artistInfoItem.getArray("flexColumns"); + final JsonArray runs = flexColumns + .getObject(flexColumns.size() - 1) .getObject("musicResponsiveListItemFlexColumnRenderer") - .getObject("text")); + .getObject("text") + .getArray("runs"); + final String subscriberCount = runs.getObject(runs.size() - 1) + .getString("text"); if (!isNullOrEmpty(subscriberCount)) { try { return Utils.mixedNumberWordToLong(subscriberCount); diff --git a/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/search/YoutubeMusicSearchExtractorTest.java b/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/search/YoutubeMusicSearchExtractorTest.java index df39a94b4..28b04cc7b 100644 --- a/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/search/YoutubeMusicSearchExtractorTest.java +++ b/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/search/YoutubeMusicSearchExtractorTest.java @@ -4,7 +4,6 @@ import static org.schabi.newpipe.extractor.ServiceList.YouTube; import static java.util.Collections.singletonList; import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Disabled; import org.schabi.newpipe.downloader.DownloaderTestImpl; import org.schabi.newpipe.extractor.InfoItem; import org.schabi.newpipe.extractor.NewPipe; @@ -107,7 +106,6 @@ public class YoutubeMusicSearchExtractorTest { @Override public InfoItem.InfoType expectedInfoItemType() { return InfoItem.InfoType.PLAYLIST; } } - @Disabled public static class MusicArtists extends DefaultSearchExtractorTest { private static SearchExtractor extractor; private static final String QUERY = "kevin";