InfinityLoop1308 / PipePipe

A FLOSS Android app to let you browse YouTube, NicoNico and BiliBili freely.
GNU General Public License v3.0
1.92k stars 40 forks source link

[Bug] Some channels display "Subscriber count unavailable" and fail to load when refreshing What's New tab #368

Open floral-qua-floral opened 1 month ago

floral-qua-floral commented 1 month ago

Checklist (Your issue will be automatically closed if you delete this part)

Describe the bug A small number of the channels I'm subscribed to (18 out of 252) show "Subscriber count unavailable" in all locations where their subscriber count would ordinarily shown. All of the affected channels seem to be YouTube channels specifically. When opening an affected channel's page, an error toast appears at the bottom of the screen, but the page otherwise loads fine, aside from the missing subscriber count.

Additionally, when reloading the "What's New" tab, channels affected by this bug fail to load, resulting in a bar under the refres button reading "Not loaded: 18". Opening the channel page of an affected channel, whether by tapping it in the Subscriptions tab or finding it with a Youtube search, reduces this number by one, indicating that the 18 channels that weren't loaded are the same ones that have their subscriber ccount missing.

Steps to reproduce the bug

  1. Open an affected channel's channel page in PipePipe. One such channel seems to be jan Misali. The channel's subscriber count will be missing, and an error will occur.
  2. Subscribe to the channel, then navigate to the What's New tab and reload it. (Fast Mode must be disabled for the error to occur.) There will be at least one Not Loaded channel.
  3. Navigate back to the affected channel's page, then return to the What's New tab. The number of Not Loaded channels will have been reduced by one.

It may be necessary to wait a couple minutes between steps 1 and 2 so that PipePipe will actually try to get the contents of the affected channel when the What's New page is refreshed. Step 3 may be dependent on the Feed Update Threshold setting, which I have set to 5 minutes.

Device (e.g. Pixel 9 Pro) Galaxy S7

Error report

Exception

org.schabi.newpipe.extractor.utils.Parser$RegexException: Failed to find pattern "([\d]+([\.,][\d]+)?)" inside of "@HBMmaster"
    at org.schabi.newpipe.extractor.utils.Parser.matchGroup(Parser.java:83)
    at org.schabi.newpipe.extractor.utils.Parser.matchGroup(Parser.java:68)
    at org.schabi.newpipe.extractor.utils.Parser.matchGroup1(Parser.java:57)
    at org.schabi.newpipe.extractor.utils.Utils.mixedNumberWordToLong(Utils.java:83)
    at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeChannelExtractor.getSubscriberCountFromPageChannelHeader(YoutubeChannelExtractor.java:333)
    at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeChannelExtractor.getSubscriberCount(YoutubeChannelExtractor.java:278)
    at org.schabi.newpipe.extractor.channel.ChannelInfo.getInfo(ChannelInfo.java:122)
    at org.schabi.newpipe.extractor.channel.ChannelInfo.getInfo(ChannelInfo.java:59)
    at org.schabi.newpipe.util.ExtractorHelper.lambda$getChannelInfo$5(ExtractorHelper.java:153)
    at org.schabi.newpipe.util.ExtractorHelper.$r8$lambda$sTHvUhDf9nfFrAT_vk2fREscV8U(Unknown Source:0)
    at org.schabi.newpipe.util.ExtractorHelper$$ExternalSyntheticLambda12.call(Unknown Source:4)
    at io.reactivex.rxjava3.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:43)
    at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4813)
    at io.reactivex.rxjava3.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35)
    at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4813)
    at io.reactivex.rxjava3.internal.operators.single.SingleOnErrorReturn.subscribeActual(SingleOnErrorReturn.java:38)
    at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4813)
    at io.reactivex.rxjava3.core.Single.blockingGet(Single.java:3644)
    at org.schabi.newpipe.local.feed.service.FeedLoadManager.startLoading$lambda-14(FeedLoadManager.kt:152)
    at org.schabi.newpipe.local.feed.service.FeedLoadManager.$r8$lambda$2QNHa7hwdRIa0js1KtTchaBG0zI(Unknown Source:0)
    at org.schabi.newpipe.local.feed.service.FeedLoadManager$$ExternalSyntheticLambda7.apply(Unknown Source:10)
    at io.reactivex.rxjava3.internal.operators.parallel.ParallelMap$ParallelMapSubscriber.onNext(ParallelMap.java:116)
    at io.reactivex.rxjava3.internal.operators.parallel.ParallelFilter$ParallelFilterSubscriber.tryOnNext(ParallelFilter.java:132)
    at io.reactivex.rxjava3.internal.operators.parallel.ParallelRunOn$RunOnConditionalSubscriber.run(ParallelRunOn.java:399)
    at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:65)
    at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:56)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
    at java.lang.Thread.run(Thread.java:764)


Additional context The issue only started occurring today, immediately after updating PipePipe from 3.6.1 to 3.7.0.

meister-kruemel commented 1 month ago

I have the same issue with some channels are not updated in 3.7.0 anymore (Not Loaded: 25).

After downgrading to 3.6.1 all channels are updated correctly again.

aaronwi commented 2 weeks ago

Also have this issue, but it's more like any amount over 100 subscriptions are unavailable, so the first ~100 for me. 3.7.0