PipePipe icon indicating copy to clipboard operation
PipePipe copied to clipboard

[Bug] [YouTube] Autocomplete suggestions broken when only using mobile data

Open ToddIndry37 opened this issue 8 months ago • 1 comments

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

  • [✓] I make sure that there are no existing issues - open or closed - which I could contribute my information to.
  • [✓] I understand that issues with limited impact, such as those occurring on specific devices or under specific network conditions, will not be fixed.
  • [✓] I am able to reproduce the bug with the latest version given here: CLICK THIS LINK.
  • [✓] I have attached the error report in the issue.

Describe the bug When I'm using mobile data, the YouTube autocomplete suggestions got an error when trying to find something. This does not affected when you're connected to the Wi-Fi network.

Frequency Most of the times & always shows up the error whenever you typing on the search box (only using mobile data)

Steps to reproduce the bug

  • Disconnect from Wi-Fi & only mobile data turned on
  • Open PipePipe normally
  • Tap the search icon
  • Type something
  • If you got the error when searching, you'll got the "Sorry, something went wrong" error on the bottom of your screen

Device (e.g. Pixel 9 Pro) Xiaomi Redmi Note 4 running MIUI 11.0.4 (Android 7.0)

Error report {"user_action":"get suggestions","request":"","content_language":"en-","content_country":"GB","app_language":"en","service":"YouTube (Logged in)","package":"InfinityLoop1309.NewPipeEnhanced","version":"4.2.4","os":"Linux Android 7.0 - 24","time":"2025-04-12 19:14","exceptions":["org.schabi.newpipe.extractor.exceptions.ParsingException: Could not parse json response\n\tat org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeSuggestionExtractor.suggestionList(YoutubeSuggestionExtractor.java:83)\n\tat org.schabi.newpipe.util.ExtractorHelper.lambda$suggestionsFor$2(ExtractorHelper.java:118)\n\tat org.schabi.newpipe.util.ExtractorHelper.$r8$lambda$kgV3vMftlbQH0zdv8hszrHLyMLU(ExtractorHelper.java)\n\tat org.schabi.newpipe.util.ExtractorHelper$$ExternalSyntheticLambda18.call(R8$$SyntheticClass)\n\tat io.reactivex.rxjava3.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:43)\n\tat io.reactivex.rxjava3.core.Single.subscribe(Single.java:4813)\n\tat io.reactivex.rxjava3.internal.operators.single.SingleToObservable.subscribeActual(SingleToObservable.java:36)\n\tat io.reactivex.rxjava3.core.Observable.subscribe(Observable.java:13131)\n\tat io.reactivex.rxjava3.internal.operators.observable.ObservableMap.subscribeActual(ObservableMap.java:33)\n\tat io.reactivex.rxjava3.core.Observable.subscribe(Observable.java:13131)\n\tat io.reactivex.rxjava3.internal.operators.observable.ObservableZip$ZipCoordinator.subscribe(ObservableZip.java:110)\n\tat io.reactivex.rxjava3.internal.operators.observable.ObservableZip.subscribeActual(ObservableZip.java:72)\n\tat io.reactivex.rxjava3.core.Observable.subscribe(Observable.java:13131)\n\tat io.reactivex.rxjava3.internal.operators.observable.ObservableMaterialize.subscribeActual(ObservableMaterialize.java:28)\n\tat io.reactivex.rxjava3.core.Observable.subscribe(Observable.java:13131)\n\tat io.reactivex.rxjava3.internal.operators.observable.ObservableSwitchMap$SwitchMapObserver.onNext(ObservableSwitchMap.java:127)\n\tat io.reactivex.rxjava3.internal.operators.observable.ObservableConcatMap$ConcatMapDelayErrorObserver$DelayErrorInnerObserver.onNext(ObservableConcatMap.java:499)\n\tat io.reactivex.rxjava3.observers.SerializedObserver.onNext(SerializedObserver.java:114)\n\tat io.reactivex.rxjava3.internal.operators.observable.ObservableDebounceTimed$DebounceTimedObserver.emit(ObservableDebounceTimed.java:143)\n\tat io.reactivex.rxjava3.internal.operators.observable.ObservableDebounceTimed$DebounceEmitter.run(ObservableDebounceTimed.java:168)\n\tat io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:65)\n\tat io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:56)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:237)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)\n\tat java.lang.Thread.run(Thread.java:760)\nCaused by: com.grack.nanojson.JsonParserException: Unexpected token 'ml' on line 1, char 1\n\tat com.grack.nanojson.JsonTokener.createParseException(Unknown Source)\n\tat com.grack.nanojson.JsonTokener.createHelpfulException(Unknown Source)\n\tat com.grack.nanojson.JsonTokener.advanceToToken(Unknown Source)\n\tat com.grack.nanojson.JsonParser.advanceToken(Unknown Source)\n\tat com.grack.nanojson.JsonParser.parse(Unknown Source)\n\tat com.grack.nanojson.JsonParser$JsonParserContext.from(Unknown Source)\n\tat org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeSuggestionExtractor.suggestionList(YoutubeSuggestionExtractor.java:69)\n\t... 26 more\n"],"user_comment":""}

Additional context Is this possibly Google ban my SIM provider IP address? Because I got 403 error before I sign in my YouTube account. I don't know if this also affected on the NewPipe forks (including this one too), but hopefully it'll fix soon ASAP.

ToddIndry37 avatar Apr 12 '25 12:04 ToddIndry37

Yeah it is very likely since I can't reproduce it on my devices. Another possibility is YouTube is doing a A/B test. At this time its better waiting to see what it really is.

InfinityLoop1308 avatar Apr 19 '25 23:04 InfinityLoop1308

Do you still have the issue?

InfinityLoop1308 avatar Jun 20 '25 08:06 InfinityLoop1308

Do you still have the issue?

Yes, I still getting that error if only using mobile data for remote autocomplete suggestions from YouTube. I don't know if this was some "parse error" that only affected to mobile data like quite strange.

ToddIndry37 avatar Jun 20 '25 23:06 ToddIndry37

Just reproduced it, luckily with debugger attached. The response is:

<!DOCTYPE html>
<html lang=en>
<meta charset=utf-8>
<meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
<title>Error 500 (Server Error)!!1</title>
<style>
  * {
    margin: 0;
    padding: 0
  }

  html,
  code {
    font: 15px/22px arial, sans-serif
  }

  html {
    background: #fff;
    color: #222;
    padding: 15px
  }

  body {
    margin: 7% auto 0;
    max-width: 390px;
    min-height: 180px;
    padding: 30px 0 15px
  }

  *>body {
    background: url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;
    padding-right: 205px
  }

  p {
    margin: 11px 0 22px;
    overflow: hidden
  }

  ins {
    color: #777;
    text-decoration: none
  }

  a img {
    border: 0
  }

  @media screen and (max-width:772px) {
    body {
      background: none;
      margin-top: 0;
      max-width: none;
      padding-right: 0
    }
  }

  #logo {
    background: url(//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png) no-repeat;
    margin-left: -5px
  }

  @media only screen and (min-resolution:192dpi) {
    #logo {
      background: url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat 0% 0%/100% 100%;
      -moz-border-image: url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) 0
    }
  }

  @media only screen and (-webkit-min-device-pixel-ratio:2) {
    #logo {
      background: url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat;
      -webkit-background-size: 100% 100%
    }
  }

  #logo {
    display: inline-block;
    height: 54px;
    width: 150px
  }
</style>
<a href=//www.google.com/> <span id=logo aria-label=Google></span></a>
<p><b>500.</b> <ins>That’s an error.</ins>
  <p>The server encountered an error and could not complete your request.<p>If the problem persists, please <A HREF="http://www.google.com/support/">report</A> your problem and mention this error message and the query that caused it. <ins>That’s all we know.</ins>

InfinityLoop1308 avatar Jul 26 '25 11:07 InfinityLoop1308

I found this error is DNS specific. Try using a VPN.

JT-Creates avatar Oct 19 '25 20:10 JT-Creates

Close since this is YouTube's issue.

InfinityLoop1308 avatar Oct 20 '25 21:10 InfinityLoop1308