Coder Social home page Coder Social logo

teamnewpipe / newpipe-legacy Goto Github PK

View Code? Open in Web Editor NEW
125.0 18.0 36.0 35.58 MB

NewPipe with support for older devices

License: GNU General Public License v3.0

Java 87.95% HTML 3.24% Kotlin 8.81%
youtube-video video newpipe legacy watch translation download-videos android

newpipe-legacy's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

newpipe-legacy's Issues

Bug from version 0.20.1

Checklist

Steps to reproduce the bug

Load feed list from news feeds section, open an video and enjoy bug message :)

Actual behaviour

The video won't load because the app shows a bug report, I close it and try again until the app shows the video.

Expected behavior

App show log report when i press to open an video.

Screenshots/Screen recordings

N/A

Logs

Exception

Crash log

org.schabi.newpipe.extractor.exceptions.ParsingException: YouTube did not provide player config even after three attempts
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.onFetchPage(YoutubeStreamExtractor.java:664)
	at org.schabi.newpipe.extractor.Extractor.fetchPage(Extractor.java:56)
	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:68)
	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:64)
	at org.schabi.newpipelegacy.util.ExtractorHelper.lambda$getStreamInfo$3(ExtractorHelper.java:116)
	at org.schabi.newpipelegacy.util.-$$Lambda$ExtractorHelper$i-hFeJnSJwqTaktlkxwfnGBKECA.call(lambda)
	at io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:44)
	at io.reactivex.Single.subscribe(Single.java:3666)
	at io.reactivex.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35)
	at io.reactivex.Single.subscribe(Single.java:3666)
	at io.reactivex.internal.operators.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41)
	at io.reactivex.Maybe.subscribe(Maybe.java:4290)
	at io.reactivex.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.drain(MaybeConcatArray.java:153)
	at io.reactivex.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.request(MaybeConcatArray.java:78)
	at io.reactivex.internal.operators.flowable.FlowableElementAtMaybe$ElementAtSubscriber.onSubscribe(FlowableElementAtMaybe.java:66)
	at io.reactivex.internal.operators.maybe.MaybeConcatArray.subscribeActual(MaybeConcatArray.java:42)
	at io.reactivex.Flowable.subscribe(Flowable.java:14935)
	at io.reactivex.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36)
	at io.reactivex.Maybe.subscribe(Maybe.java:4290)
	at io.reactivex.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46)
	at io.reactivex.Single.subscribe(Single.java:3666)
	at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
	at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578)
	at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
	at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
	at java.util.concurrent.FutureTask.run(FutureTask.java:234)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:153)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:267)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
	at java.lang.Thread.run(Thread.java:838)


Device info

  • Android version/Custom ROM version: 4.2.1
  • Device model: Mediacom PhonePad Duo G500

Blackberry OS 10.3.2 Android Version: qnx Android 4.3-18 also available for testing

I'm very happy to report that the latest NewPipe Legacy v0.19.8 works properly with my Blackberry. OS Version 10.3.2 & BB Android Version: qnx Android 4.3-18

Very heartfelt thanks to all the people involved in this project. ๐Ÿ‘ I hope you all can continue to support this unique device combination.

Is your feature request related to a problem? Please describe it

I just wanted to put it here that if you all want to test any aspect of the app, my device is available.

How will you/everyone benefit from this feature?

This will help make the app more robust for legacy devices and unsupported OSes.

Pause/Play symbol issues

Version

  • Newpipe Legacy 0.19.8
  • Tablet is Arnova WM8850-mid, with Android 4.1.1 JB Ver1.3.5-20130322.068719. The screen width is 1024x600.

Steps to reproduce the bug

Playing any video, the pause/play button has a strange symbol behind. It also is unresponsive unless you tap in the border of the box of the button, if you tap in the center, it does nothing.

Expected behavior

It works as always, you can play and pause without issue.

Actual behaviour

Button is unresponsive unless you press the border of the box.

Screenshots/Screen recordings

This is like i see when the pause symbol is shown. With the play symbol is behind, but you almost can't see it, but is there behind.
Screenshot_2020-10-20-19-08-22

This is a screenshot of the symbol behind along i managed to do.
Screenshot_2020-10-20-19-11-52

The red part is the aprox. responsive part of the button, if you press in the middle, it does nothing (as pause or as play) but you can push the red part and it does the job.
Screenshot_2020-10-20-19-11-37

Logs

If needed...

Every youtube video broken

Exception

Crash log

org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor$DecryptException: Could not parse decrypt function 
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.loadDecryptionCode(YoutubeStreamExtractor.java:849)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.onFetchPage(YoutubeStreamExtractor.java:716)
	at org.schabi.newpipe.extractor.Extractor.fetchPage(Extractor.java:54)
	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:64)
	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:60)
	at org.schabi.newpipelegacy.util.ExtractorHelper.lambda$getStreamInfo$3(ExtractorHelper.java:115)
	at org.schabi.newpipelegacy.util.-$$Lambda$ExtractorHelper$i-hFeJnSJwqTaktlkxwfnGBKECA.call(lambda)
	at io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:44)
	at io.reactivex.Single.subscribe(Single.java:3438)
	at io.reactivex.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35)
	at io.reactivex.Single.subscribe(Single.java:3438)
	at io.reactivex.internal.operators.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41)
	at io.reactivex.Maybe.subscribe(Maybe.java:4154)
	at io.reactivex.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.drain(MaybeConcatArray.java:153)
	at io.reactivex.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.request(MaybeConcatArray.java:78)
	at io.reactivex.internal.operators.flowable.FlowableElementAtMaybe$ElementAtSubscriber.onSubscribe(FlowableElementAtMaybe.java:66)
	at io.reactivex.internal.operators.maybe.MaybeConcatArray.subscribeActual(MaybeConcatArray.java:42)
	at io.reactivex.Flowable.subscribe(Flowable.java:14479)
	at io.reactivex.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36)
	at io.reactivex.Maybe.subscribe(Maybe.java:4154)
	at io.reactivex.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46)
	at io.reactivex.Single.subscribe(Single.java:3438)
	at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
	at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578)
	at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
	at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
	at java.util.concurrent.FutureTask.run(FutureTask.java:234)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:153)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:267)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
	at java.lang.Thread.run(Thread.java:841)
Caused by: org.schabi.newpipe.extractor.utils.Parser$RegexException: failed to find pattern ";([A-Za-z0-9_\$]{2})\...\( inside of var lea=function(a){a=a.split("");var b=[function(c,d){d=(d%c.length+c.length)%c.length;c.splice(-d).reverse().forEach(function(e){return c.unshift(e)};"
	at org.schabi.newpipe.extractor.utils.Parser.matchGroup(Parser.java:73)
	at org.schabi.newpipe.extractor.utils.Parser.matchGroup(Parser.java:61)
	at org.schabi.newpipe.extractor.utils.Parser.matchGroup1(Parser.java:52)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.loadDecryptionCode(YoutubeStreamExtractor.java:836)
	... 31 more


A Display Bug

Dear developer
In the process of using, I found a bug in layout / display. There is text occlusion at the top of the sidebar of the application. The lower part of "Legacy" in "Newpipe Legacy" is blocked, which may be an adaptation problem.
App version is 0.18.6, my mobile phone is Google nexus 6, screen resolution setting is 1440 * 2560, font size is the largest, Android system is 8.0.
The above is a description of the problem. The overall experience of the software is good. You can see that the design is very attentive. Thank you very much for the efforts of the developers all the time. I hope to receive a reply.
Thank you!
image

error reading video comments

When loading a Video, I get this error, which causes the comments not to load. In the non legacy version, the video doesn't even load.

{"user_action":"requested comments","request":"https://m.youtube.com/watch?v=fge84-mH_uM","content_language":"de-DE","content_country":"DE","app_language":"de_DE","service":"YouTube","package":"org.schabi.newpipelegacy","version":"0.20.2","os":"Linux Android 10 - 29","time":"2020-12-28 16:46","exceptions":["org.schabi.newpipe.extractor.exceptions.ParsingException: Could not parse json data for comments\n\tat org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeCommentsExtractor.getPage(YoutubeCommentsExtractor.java:97)\n\tat org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeCommentsExtractor.getInitialPage(YoutubeCommentsExtractor.java:52)\n\tat org.schabi.newpipe.extractor.utils.ExtractorHelper.getItemsPageOrLogError(ExtractorHelper.java:19)\n\tat org.schabi.newpipe.extractor.comments.CommentsInfo.getInfo(CommentsInfo.java:40)\n\tat org.schabi.newpipe.extractor.comments.CommentsInfo.getInfo(CommentsInfo.java:25)\n\tat org.schabi.newpipelegacy.util.ExtractorHelper.lambda$getCommentsInfo$7(ExtractorHelper.java:155)\n\tat org.schabi.newpipelegacy.util.-$$Lambda$ExtractorHelper$Q3aiO7F5MGsHd2cKQH1lfXvfZpA.call(Unknown Source:4)\n\tat io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:44)\n\tat io.reactivex.Single.subscribe(Single.java:3666)\n\tat io.reactivex.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35)\n\tat io.reactivex.Single.subscribe(Single.java:3666)\n\tat io.reactivex.internal.operators.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41)\n\tat io.reactivex.Maybe.subscribe(Maybe.java:4290)\n\tat io.reactivex.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.drain(MaybeConcatArray.java:153)\n\tat io.reactivex.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.request(MaybeConcatArray.java:78)\n\tat io.reactivex.internal.operators.flowable.FlowableElementAtMaybe$ElementAtSubscriber.onSubscribe(FlowableElementAtMaybe.java:66)\n\tat io.reactivex.internal.operators.maybe.MaybeConcatArray.subscribeActual(MaybeConcatArray.java:42)\n\tat io.reactivex.Flowable.subscribe(Flowable.java:14935)\n\tat io.reactivex.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36)\n\tat io.reactivex.Maybe.subscribe(Maybe.java:4290)\n\tat io.reactivex.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46)\n\tat io.reactivex.Single.subscribe(Single.java:3666)\n\tat io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)\n\tat io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578)\n\tat io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)\n\tat io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)\n\tat java.lang.Thread.run(Thread.java:919)\nCaused by: com.grack.nanojson.JsonParserException: Unexpected character: < on line 1, char 1\n\tat com.grack.nanojson.JsonTokener.createParseException(Unknown Source:44)\n\tat com.grack.nanojson.JsonTokener.advanceToToken(Unknown Source:118)\n\tat com.grack.nanojson.JsonParser.advanceToken(Unknown Source:12)\n\tat com.grack.nanojson.JsonParser.parse(Unknown Source:1)\n\tat com.grack.nanojson.JsonParser$JsonParserContext.from(Unknown Source:19)\n\tat org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeCommentsExtractor.getPage(YoutubeCommentsExtractor.java:95)\n\t... 30 more\n"],"user_comment":""}

With some playlists, it doesn't advance to the next video

Checklist

Steps to reproduce the bug

Actual behaviour

  • ... It doesn't play. It keeps loading indefinitely.
  • In fact, you can play any other video. They don't load.
  • You need to exit and swip out Newpipe Legacy and enter again to play any other video.

Expected behavior

  • When a video ends in a playlist, it should be playing the next one in the playlist.
  • In fact, with a new created playlist with three short videos (not a one searched and bookmarked), it pass from the next one like normal.

Screenshots/Screen recordings

Logs

This is the log from Newpipe in aLogCat, during the bug with the mentioned playlist:
alogcat.2020-12-11-21-32-18+0100_Bug.txt

Also, this is the log when using that short playlist which doesn't do that problem:
alogcat.2020-12-11-21-17-51+0100_noBug.txt

Device info

  • Android version/Custom ROM version: 4.1.1 JB Ver1.3.5-20130322.065719
  • Device model: Arnova 10d G3 (WonderMedia WM8850-mid)

Konnte Webseite nicht analysieren

Gives this error on every video:
Could not analyse website.

Exception

  • User Action: requested stream
  • Request: https://www.youtube.com/watch?v=EEiZawMAG1g
  • Content Country: DE
  • Content Language: de-DE
  • App Language: de_DE
  • Service: YouTube
  • Version: 0.20.1
  • OS: Linux samsung/heroltexx/herolte:8.0.0/R16NW/G930FXXU3ESA3:user/release-keys 8.0.0 - 26
Crash log

org.schabi.newpipe.extractor.exceptions.ParsingException: YouTube did not provide player config even after three attempts
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.onFetchPage(YoutubeStreamExtractor.java:664)
	at org.schabi.newpipe.extractor.Extractor.fetchPage(Extractor.java:56)
	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:68)
	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:64)
	at org.schabi.newpipelegacy.util.ExtractorHelper.lambda$getStreamInfo$3(ExtractorHelper.java:116)
	at org.schabi.newpipelegacy.util.-$$Lambda$ExtractorHelper$i-hFeJnSJwqTaktlkxwfnGBKECA.call(Unknown Source:4)
	at io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:44)
	at io.reactivex.Single.subscribe(Single.java:3666)
	at io.reactivex.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35)
	at io.reactivex.Single.subscribe(Single.java:3666)
	at io.reactivex.internal.operators.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41)
	at io.reactivex.Maybe.subscribe(Maybe.java:4290)
	at io.reactivex.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.drain(MaybeConcatArray.java:153)
	at io.reactivex.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.request(MaybeConcatArray.java:78)
	at io.reactivex.internal.operators.flowable.FlowableElementAtMaybe$ElementAtSubscriber.onSubscribe(FlowableElementAtMaybe.java:66)
	at io.reactivex.internal.operators.maybe.MaybeConcatArray.subscribeActual(MaybeConcatArray.java:42)
	at io.reactivex.Flowable.subscribe(Flowable.java:14935)
	at io.reactivex.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36)
	at io.reactivex.Maybe.subscribe(Maybe.java:4290)
	at io.reactivex.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46)
	at io.reactivex.Single.subscribe(Single.java:3666)
	at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
	at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578)
	at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
	at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
	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)


URL decryption error

Is it possible to merge/port that fix for legacy too?
Thanks for your hard work!

NewPipe-legacy 0.18.6 crashes when opening youtube video streams

Hello NewPipe Team,

Sorry for posting a crash in here. Unfortunately my device is not able to send the automatic reports. I'm using NewPipe-legacy on my car's head-unit (Android 4.2.2 / no email client). Unfortunately since a few days since a few days NewPipe crashes when opening YouTube videos. When you e.g. choose a title in the search, the following screen crashes with an URL parse exception. It started intermittently but now seems to impacts almost all video files.

Is this an issue with has been addressed with the latest 0.19.x release of the main application, or is this something completely new? Let me know if I should provide a "screenshot".

Thank you in advance for taking a look.
Thanks,
Alex

0.20.5 not yet in /releases or F-Droid

Checklist

Steps to reproduce the bug

  1. Go to F-Droid's NewPipe Legacy page.

Actual behaviour

Version 0.20.2 is still the most recent release.

Expected behavior

Version 0.20.5 expected to be seen as the latest.

Screenshots/Screen recordings

Logs

Device info

  • Android version/Custom ROM version: Android 4.1.2
  • Device model: LG Optimus L3 II (E430)

Can you please add IssueHunt or Bountysource?

Can you please add IssueHunt or Bountysource to this repo?
They allow to put donations on specific issues, so everyone implementing them can get the money.

For Bountysource it currently point to the base project, not the legacy one.
Bountysource integration is more bugged in general, IssueHunt seems better.

Export Newpipe database to Newpipe Legacy

This is not a bug but just a compatibility query.
I tried exporting my database from Newpipe v0.19.3 and import them to Newpipe Legacy v0.18.6 but they don't import anymore. The last database I tried to do this with worked which is dated 16/02/2020 but I don't know what versions both of them were on at the time.
Do you think it's possible to add this again? I primarily use Newpipe on my main device and occasionally use Newpipe Legacy on my other device but when I use Legacy I'd like to transfer my current settings from my main device.

AUDIO CHOPPY ON ANDROID 4.4.3 DEVICE

When we try to play YouTube videos, the playback audio is so choppy it can't be understood. This is on a Kindle Fire HD 7 3rd Generation with the TI OMAP 4470. See info below.

Exception

  • User Action: requested comments
  • Request: https://m.youtube.com/watch?v=5Fg9oZk-5uA
  • Content Country: US
  • Content Language: en-US
  • App Language: en_US
  • Service: YouTube
  • Version: 0.20.2
  • OS: Linux Android 4.4.3 - 19
Crash log

org.schabi.newpipe.extractor.exceptions.ParsingException: Could not parse json data for comments
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeCommentsExtractor.getPage(YoutubeCommentsExtractor.java:97)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeCommentsExtractor.getInitialPage(YoutubeCommentsExtractor.java:52)
	at org.schabi.newpipe.extractor.utils.ExtractorHelper.getItemsPageOrLogError(ExtractorHelper.java:19)
	at org.schabi.newpipe.extractor.comments.CommentsInfo.getInfo(CommentsInfo.java:40)
	at org.schabi.newpipe.extractor.comments.CommentsInfo.getInfo(CommentsInfo.java:25)
	at org.schabi.newpipelegacy.util.ExtractorHelper.lambda$getCommentsInfo$7(ExtractorHelper.java:155)
	at org.schabi.newpipelegacy.util.-$$Lambda$ExtractorHelper$Q3aiO7F5MGsHd2cKQH1lfXvfZpA.call(lambda)
	at io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:44)
	at io.reactivex.Single.subscribe(Single.java:3666)
	at io.reactivex.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35)
	at io.reactivex.Single.subscribe(Single.java:3666)
	at io.reactivex.internal.operators.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41)
	at io.reactivex.Maybe.subscribe(Maybe.java:4290)
	at io.reactivex.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.drain(MaybeConcatArray.java:153)
	at io.reactivex.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.request(MaybeConcatArray.java:78)
	at io.reactivex.internal.operators.flowable.FlowableElementAtMaybe$ElementAtSubscriber.onSubscribe(FlowableElementAtMaybe.java:66)
	at io.reactivex.internal.operators.maybe.MaybeConcatArray.subscribeActual(MaybeConcatArray.java:42)
	at io.reactivex.Flowable.subscribe(Flowable.java:14935)
	at io.reactivex.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36)
	at io.reactivex.Maybe.subscribe(Maybe.java:4290)
	at io.reactivex.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46)
	at io.reactivex.Single.subscribe(Single.java:3666)
	at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
	at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578)
	at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
	at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
	at java.util.concurrent.FutureTask.run(FutureTask.java:237)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
	at java.lang.Thread.run(Thread.java:841)
Caused by: com.grack.nanojson.JsonParserException: Unexpected character: < on line 1, char 1
	at com.grack.nanojson.JsonTokener.createParseException(Unknown Source)
	at com.grack.nanojson.JsonTokener.advanceToToken(Unknown Source)
	at com.grack.nanojson.JsonParser.advanceToken(Unknown Source)
	at com.grack.nanojson.JsonParser.parse(Unknown Source)
	at com.grack.nanojson.JsonParser$JsonParserContext.from(Unknown Source)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeCommentsExtractor.getPage(YoutubeCommentsExtractor.java:95)
	... 31 more


A display issue

Checklist

Steps to reproduce the bug

  1. Go to first page
  2. See the bug

Dear developer!
In the process of using, I found a bug in layout / display. As shown in the figure, in the first page, the text in the red box overlap with each other. This may be an adaptation problem. I suspect it is because display and font size are set to large (mainly due to display size).
Because of some problems with my eyesight, I often use the largest font and display.
297165ECE247F4EDC808C49B7E0633F7
App version is 0.20.2, my mobile phone is Google nexus 6, screen resolution setting is 1920* 1080, font size and display size are the largest ! ! !, Android system is 8.0.
The above is a description of the problem. The overall experience of the software is good. You can see that the design is very attentive. Thank you very much for the efforts of the developers all the time. I hope to receive a reply.
Thank you!
bug-newpipelegacy

Actual behaviour

use the largest font and display.

Expected behavior

Hope to solve the problem of overlap.

Screenshots/Screen recordings

bug-newpipelegacy

Logs

Device info

  • Android version/Custom ROM version: Android 8.0
  • Device model: Google nexus 6

UI crashes when home screen is set to feed.

When the main screen / home page is set to the subscriptions feed it takes a while to load, and crashes the UI occasionally.
Tapping the feed icon from the subscriptions page loads the feed almost instantly, and without issues.

Exception

  • User Action: ui error
  • Request: App crash, UI failure
  • Content Language: US
  • Service: none
  • Version: 0.15.1
  • OS: qnx Android 4.3 - 18
Crash log

java.lang.IllegalArgumentException: Called attach on a child which is not detached: ViewHolder{37933c90 position=0 id=-1, oldPos=-1, pLpos:-1 not recyclable(1)} android.support.v7.widget.RecyclerView{375cd198 VFED.V.. .F....ID 0,0-800,591 #7f090119 app:id/items_list}, adapter:org.schabi.newpipelegacy.info_list.InfoListAdapter@37591f40, layout:android.support.v7.widget.LinearLayoutManager@375d46d0, context:org.schabi.newpipelegacy.MainActivity@37192970
	at android.support.v7.widget.RecyclerView$5.attachViewToParent(RecyclerView.java:915)
	at android.support.v7.widget.ChildHelper.attachViewToParent(ChildHelper.java:239)
	at android.support.v7.widget.RecyclerView.addAnimatingView(RecyclerView.java:1431)
	at android.support.v7.widget.RecyclerView.animateDisappearance(RecyclerView.java:4161)
	at android.support.v7.widget.RecyclerView$4.processDisappeared(RecyclerView.java:612)
	at android.support.v7.widget.ViewInfoStore.process(ViewInfoStore.java:240)
	at android.support.v7.widget.RecyclerView.dispatchLayoutStep3(RecyclerView.java:3994)
	at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3652)
	at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:4194)
	at android.view.View.layout(View.java:14310)
	at android.view.ViewGroup.layout(ViewGroup.java:4562)
	at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1076)
	at android.view.View.layout(View.java:14310)
	at android.view.ViewGroup.layout(ViewGroup.java:4562)
	at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1775)
	at android.view.View.layout(View.java:14310)
	at android.view.ViewGroup.layout(ViewGroup.java:4562)
	at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1076)
	at android.view.View.layout(View.java:14310)
	at android.view.ViewGroup.layout(ViewGroup.java:4562)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
	at android.view.View.layout(View.java:14310)
	at android.view.ViewGroup.layout(ViewGroup.java:4562)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
	at android.view.View.layout(View.java:14310)
	at android.view.ViewGroup.layout(ViewGroup.java:4562)
	at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1231)
	at android.view.View.layout(View.java:14310)
	at android.view.ViewGroup.layout(ViewGroup.java:4562)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
	at android.view.View.layout(View.java:14310)
	at android.view.ViewGroup.layout(ViewGroup.java:4562)
	at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
	at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
	at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
	at android.view.View.layout(View.java:14310)
	at android.view.ViewGroup.layout(ViewGroup.java:4562)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
	at android.view.View.layout(View.java:14310)
	at android.view.ViewGroup.layout(ViewGroup.java:4562)
	at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
	at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
	at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
	at android.view.View.layout(View.java:14310)
	at android.view.ViewGroup.layout(ViewGroup.java:4562)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
	at android.view.View.layout(View.java:14310)
	at android.view.ViewGroup.layout(ViewGroup.java:4562)
	at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1978)
	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1732)
	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1006)
	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5550)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
	at android.view.Choreographer.doCallbacks(Choreographer.java:562)
	at android.view.Choreographer.doFrame(Choreographer.java:532)
	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
	at android.os.Handler.handleCallback(Handler.java:730)
	at android.os.Handler.dispatchMessage(Handler.java:92)
	at android.os.Looper.loop(Looper.java:137)
	at android.app.ActivityThread.main(ActivityThread.java:5121)
	at java.lang.reflect.Method.invokeNative(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:525)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
	at dalvik.system.NativeStart.main(Native Method)


Crash during boot loading, "Android Box SH940C-LN android jelly bean"

please fix this. NewPipe Legacy error on "ANDROID BOX SH940C-LN" android versi jelly bean

Exception

  • User Action: ui error
  • Request: App crash, UI failure
  • Content Country: ID
  • Content Language: in-ID
  • App Language: in_ID
  • Service: none
  • Version: 0.19.8
  • OS: Linux Android 4.2.2 - 17
Crash log

java.lang.NoSuchMethodError: android.view.ViewGroup.getOverlay
	at org.schabi.newpipelegacy.views.FocusOverlayView.setupOverlay(FocusOverlayView.java:203)
	at org.schabi.newpipelegacy.views.FocusOverlayView.setupFocusObserver(FocusOverlayView.java:198)
	at org.schabi.newpipelegacy.MainActivity.onCreate(MainActivity.java:143)
	at android.app.Activity.performCreate(Activity.java:5104)
	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
	at android.app.ActivityThread.access$600(ActivityThread.java:141)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loop(Looper.java:137)
	at android.app.ActivityThread.main(ActivityThread.java:5041)
	at java.lang.reflect.Method.invokeNative(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:511)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
	at dalvik.system.NativeStart.main(Native Method)


New icon prosposal

Hey @friendlyanon!
I just wanted to come across and say thanks for maintaining the legacy version! I'd like to propose a new icon, because the "legacy" lettering of the current icon is hard to read when it is displayed on a white background. I could not find the perfect font for my icon variation though.

OldNew

newpipe_legacy_icon_3.svg.zip

[FEATURE] Fallback mode on decryption errors

It is nice to have Fallback Mode on extractor decryption errors to open requested videos in WebView as embedded video frame or/end external web browser without extra bloatware on main YouTube page. You know Legacy devices is limited by resources.

Also nice to have ability to share that embedded video link not main at least.

I'm just happy to have local bookmarks/search for yt without any other providers. Keep it lite for legacy.

Thank you very much!

[Feature request] Software acceleration in the built-in player

As a person who have an older budget device and have to stick with it for a long time to go, I found NewPipe Legacy very interesting as a good alternative towards the official YouTube app. The main reason is because NewPipe happens to include external player support and while the official app and other alternatives struggle to run smoothly at my device, NewPipe work smooth as silk.

But this method of using external video player comes with a cost. The app was unable to make video player run 144p, 240p, 480p with sound. Secondly, due to integrated video player doesn't support SW acceleration, whenever I tried to run a video in PiP mode, it just became a mess much like how the official app didn't work with my phone in the first place.

Please integrate SW acceleration option for your built-in video player. That should make many legacy devices work with the app better.

Update notifications are (also?) notifying about NewPipe updates, not (only?) NewPipeLegacy.

Basically, $subject. I just started NewPipeLegacy on an old phone I have and the app notified me about an update to version 0.19.5.

Version

  • 0.19.4

Steps to reproduce the bug

  1. Start NewPipeLegacy with update notifications enabled after a new release of NewPipe.

Expected behavior

No update notification should appear.

Actual behaviour

NewPipeLegacy notifies about NewPipe app updates.

Trying to import a.json file from youtube subscription

Checklist

Steps to reproduce the bug

I was trying to import my .json file for my youtube subscriptions. When I would click "import" I would get a message that no "zip file exists". Two times I received an error which I clicked on "share bug" and that lead me here. I apologize for not properly filling out this form. I am new.

I expected the .json zip file to be imported and reflect my youtube subscriptions.

Screenshots/Screen recordings

Logs

Device info

  • Android version/Custom ROM version: Android 11/CalyxOS 2.1.0
  • Device model: Pixel 4a

[Feature request] Support for Fire OS 7.5.1

I like that Newpipe released a legacy app, unfortunately it doesn't cover my Kindle and Motorola phone which both currently run a version of ice cream sandwich
My kindle is as up to date as it can be, version 7.5.1 which is based on android 4.0.3 ICS
My Motorola Atrix 2 also runs 4.0.3 ICS
I don't know the probability for compatibility, but it doesn't hurt to request. Who knows, maybe it could be picked up. Thanks, J.

Changing font size

Checklist

Changing font size

On my Redmi note 7 the comments' font size is way too small, but I'd also scale up the whole interface, for a better experience.
It would be nice to add an option to scale the interface's elements as wished.

Replace StandardCharsets

Hey,
I wanted to remind you that we use StandardCharsets in the downloader. StandardCharsets have been introduced with KitKat. You need to replace this with "utf-8" to not get crashes.

video not working on either legacy or regular android app

Exception

Crash log

org.schabi.newpipe.extractor.exceptions.ParsingException: Could not load decryption code for the Youtube service.
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.getPlayerUrl(YoutubeStreamExtractor.java:706)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.onFetchPage(YoutubeStreamExtractor.java:656)
	at org.schabi.newpipe.extractor.Extractor.fetchPage(Extractor.java:56)
	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:68)
	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:64)
	at org.schabi.newpipelegacy.util.ExtractorHelper.lambda$getStreamInfo$3(ExtractorHelper.java:116)
	at org.schabi.newpipelegacy.util.-$$Lambda$ExtractorHelper$i-hFeJnSJwqTaktlkxwfnGBKECA.call(lambda)
	at io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:44)
	at io.reactivex.Single.subscribe(Single.java:3666)
	at io.reactivex.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35)
	at io.reactivex.Single.subscribe(Single.java:3666)
	at io.reactivex.internal.operators.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41)
	at io.reactivex.Maybe.subscribe(Maybe.java:4290)
	at io.reactivex.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.drain(MaybeConcatArray.java:153)
	at io.reactivex.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.request(MaybeConcatArray.java:78)
	at io.reactivex.internal.operators.flowable.FlowableElementAtMaybe$ElementAtSubscriber.onSubscribe(FlowableElementAtMaybe.java:66)
	at io.reactivex.internal.operators.maybe.MaybeConcatArray.subscribeActual(MaybeConcatArray.java:42)
	at io.reactivex.Flowable.subscribe(Flowable.java:14935)
	at io.reactivex.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36)
	at io.reactivex.Maybe.subscribe(Maybe.java:4290)
	at io.reactivex.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46)
	at io.reactivex.Single.subscribe(Single.java:3666)
	at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
	at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578)
	at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
	at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
	at java.util.concurrent.FutureTask.run(FutureTask.java:237)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
	at java.lang.Thread.run(Thread.java:841)
Caused by: java.lang.NullPointerException
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.getPlayerUrl(YoutubeStreamExtractor.java:701)
	... 31 more


Newpipe: Content Unavailable

On the most recent version of Newpipe-Legacy, I've noticed that any video I try to play now just shows "Content unavailable" in the place of where there used to be the video frame. This effectively makes the app unusable, as it can no longer be used to watch any videos. It doesn't crash so I don't think there's a crash dump to upload, but I'm happy to assist with whatever information could be helpful.

Newpipe crashes after clicking video

The functionality of watching video or audio is ceased to exist as it crashes every time in youtube. However searching videos works fine . I have cleared data and cache. Moreover, I also uninstalled and reinstalled the apk but still I can't use newpipe. Its's not newpipe but other youtube alternatives are crashing. MAYBE, YouTube changed their setup.Please fix it as soon as you can. Currently I am using version 17.1 of the legacy app if this helps.

Search Bar Not Returning Any Results

Exception

  • User Action: searched
  • Request: for me to live is christ piano tutorial
  • Content Country: GB
  • Content Language: en-GB
  • App Language: en_GB
  • Service: YouTube
  • Version: 0.19.8
  • OS: Linux Android 9 - 28
Crash log

org.schabi.newpipe.extractor.exceptions.ParsingException: Could not get ytInitialData
	at org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.getInitialData(YoutubeParsingHelper.java:203)
	at org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.extractClientVersionAndKey(YoutubeParsingHelper.java:222)
	at org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.getKey(YoutubeParsingHelper.java:298)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeSearchExtractor.getNewNextPageFrom(YoutubeSearchExtractor.java:233)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeSearchExtractor.getInitialPage(YoutubeSearchExtractor.java:127)
	at org.schabi.newpipe.extractor.utils.ExtractorHelper.getItemsPageOrLogError(ExtractorHelper.java:19)
	at org.schabi.newpipe.extractor.search.SearchInfo.getInfo(SearchInfo.java:55)
	at org.schabi.newpipe.extractor.search.SearchInfo.getInfo(SearchInfo.java:30)
	at org.schabi.newpipelegacy.util.ExtractorHelper.lambda$searchFor$0(ExtractorHelper.java:81)
	at org.schabi.newpipelegacy.util.-$$Lambda$ExtractorHelper$-8aHvL55sR85zE6IsKXH93CdRds.call(Unknown Source:8)
	at io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:44)
	at io.reactivex.Single.subscribe(Single.java:3666)
	at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
	at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578)
	at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
	at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
	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:1167)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
	at java.lang.Thread.run(Thread.java:764)
Caused by: org.schabi.newpipe.extractor.utils.Parser$RegexException: failed to find pattern "window\["ytInitialData"\]\s*=\s*(\{.*?\});
	at org.schabi.newpipe.extractor.utils.Parser.matchGroup(Parser.java:72)
	at org.schabi.newpipe.extractor.utils.Parser.matchGroup(Parser.java:61)
	at org.schabi.newpipe.extractor.utils.Parser.matchGroup1(Parser.java:52)
	at org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.getInitialData(YoutubeParsingHelper.java:200)
	... 20 more


crash (possibly on playlist scroll)

I don't know how to reproduce this.

Exception

  • User Action: ui error
  • Request: App crash, UI failure
  • Content Country: GB
  • Content Language: en
  • App Language: en_US
  • Service: none
  • Version: 0.20.2
  • OS: Linux Android 10 - 29
Crash log

java.lang.IllegalStateException: ViewHolder views must not be attached when created. Ensure that you are not passing 'true' to the attachToRoot parameter of LayoutInflater.inflate(..., boolean attachToRoot)
	at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:7080)
	at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6235)
	at androidx.recyclerview.widget.GapWorker.prefetchPositionWithDeadline(GapWorker.java:288)
	at androidx.recyclerview.widget.GapWorker.flushTaskWithDeadline(GapWorker.java:345)
	at androidx.recyclerview.widget.GapWorker.flushTasksWithDeadline(GapWorker.java:361)
	at androidx.recyclerview.widget.GapWorker.prefetch(GapWorker.java:368)
	at androidx.recyclerview.widget.GapWorker.run(GapWorker.java:399)
	at android.os.Handler.handleCallback(Handler.java:883)
	at android.os.Handler.dispatchMessage(Handler.java:100)
	at android.os.Looper.loop(Looper.java:214)
	at android.app.ActivityThread.main(ActivityThread.java:7356)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:940)


Error report: could not parse website

Checklist

Steps to reproduce the bug

Actual behaviour

The video does not play and I get an error message saying that it could not parse the website.

Expected behavior

The video to start playing.

Screenshots/Screen recordings

Exception

Crash log

org.schabi.newpipe.extractor.exceptions.ParsingException: YouTube did not provide player config even after three attempts
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.onFetchPage(YoutubeStreamExtractor.java:664)
	at org.schabi.newpipe.extractor.Extractor.fetchPage(Extractor.java:56)
	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:68)
	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:64)
	at org.schabi.newpipelegacy.util.ExtractorHelper.lambda$getStreamInfo$3(ExtractorHelper.java:116)
	at org.schabi.newpipelegacy.util.-$$Lambda$ExtractorHelper$i-hFeJnSJwqTaktlkxwfnGBKECA.call(Unknown Source:4)
	at io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:44)
	at io.reactivex.Single.subscribe(Single.java:3666)
	at io.reactivex.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35)
	at io.reactivex.Single.subscribe(Single.java:3666)
	at io.reactivex.internal.operators.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41)
	at io.reactivex.Maybe.subscribe(Maybe.java:4290)
	at io.reactivex.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.drain(MaybeConcatArray.java:153)
	at io.reactivex.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.request(MaybeConcatArray.java:78)
	at io.reactivex.internal.operators.flowable.FlowableElementAtMaybe$ElementAtSubscriber.onSubscribe(FlowableElementAtMaybe.java:66)
	at io.reactivex.internal.operators.maybe.MaybeConcatArray.subscribeActual(MaybeConcatArray.java:42)
	at io.reactivex.Flowable.subscribe(Flowable.java:14935)
	at io.reactivex.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36)
	at io.reactivex.Maybe.subscribe(Maybe.java:4290)
	at io.reactivex.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46)
	at io.reactivex.Single.subscribe(Single.java:3666)
	at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
	at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578)
	at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
	at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
	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:1167)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
	at java.lang.Thread.run(Thread.java:923)


Logs

Device info

  • Android version/Custom ROM version: Graphene OS
  • Device model: Pixel 2

LogCat - it doesn't run when you have fuc*ed GApps (SGS3, 4.3 JB Official, Rooted + Xposed)

"NewPipe Legacy" never worked for me - any version, from wherever - GitHub, F-Droid or a Modded one from 4PDA !
Here's the crash log captured with "Logcat Extreme Pro" (I don't know what "ACRA" is, is it a "firebase" analytics issue or whatever, or maybe the issue is in the build-in updates check):

---- Sep 13, 2020 8:11:21 PM ----

09-13 20:10:09.830  2454  3905 D Prevent : allow start activity org.schabi.newpipelegacy/.MainActivity

09-13 20:10:09.885  2454  3900 V Prevent : launch, current: [org.schabi.newpipelegacy]

09-13 20:10:09.890  2454  3900 D Prevent : action: start activity, package: org.schabi.newpipelegacy, count: 1

09-13 20:10:10.135  6125  6125 E dalvikvm: Could not find class 'android.app.NotificationChannel', referenced from method org.schabi.newpipelegacy.App.setUpUpdateNotificationChannel

09-13 20:10:10.140  6125  6125 E dalvikvm: Could not find class 'android.app.NotificationChannel', referenced from method org.schabi.newpipelegacy.App.initNotificationChannel

09-13 20:10:10.205  6125  6125 I ACRA    : ACRA is enabled for org.schabi.newpipelegacy, initializing...

09-13 20:10:10.945  6125  6125 E ACRA    : ACRA caught a RuntimeException for org.schabi.newpipelegacy

09-13 20:10:10.945  6125  6125 E ACRA    : java.lang.RuntimeException: Unable to create application org.schabi.newpipelegacy.App: java.lang.NullPointerException

09-13 20:10:10.945  6125  6125 E ACRA    : 	at org.schabi.newpipelegacy.CheckForNewAppVersionTask.getCertificateSHA1Fingerprint(Unknown Source)

09-13 20:10:10.945  6125  6125 E ACRA    : 	at org.schabi.newpipelegacy.CheckForNewAppVersionTask.isGithubApk(Unknown Source)

09-13 20:10:10.945  6125  6125 E ACRA    : 	at org.schabi.newpipelegacy.CheckForNewAppVersionTask.onPreExecute(Unknown Source)

09-13 20:10:10.945  6125  6125 E ACRA    : 	at org.schabi.newpipelegacy.App.onCreate(Unknown Source)

09-13 20:10:11.090  2454  3564 D Prevent : action: app died, package: org.schabi.newpipelegacy--org.schabi.newpipelegacy, count: 1

09-13 20:10:11.090  2454  3564 D Prevent : allow start activity org.schabi.newpipelegacy/.MainActivity

09-13 20:10:11.090  2454  3564 I ActivityManager: Process org.schabi.newpipelegacy (pid 6125) (adj 0) has died.

09-13 20:10:11.125  2454 12209 V Prevent : launch, current: [org.schabi.newpipelegacy]

09-13 20:10:11.130  2454 12209 V Prevent : pid 6125 is not for org.schabi.newpipelegacy

09-13 20:10:11.130  2454 12209 D Prevent : action: start activity, package: org.schabi.newpipelegacy, count: 1

09-13 20:10:11.230  6170  6170 E dalvikvm: Could not find class 'android.app.NotificationChannel', referenced from method org.schabi.newpipelegacy.App.setUpUpdateNotificationChannel

09-13 20:10:11.235  6170  6170 E dalvikvm: Could not find class 'android.app.NotificationChannel', referenced from method org.schabi.newpipelegacy.App.initNotificationChannel

09-13 20:10:11.260  6183  6183 E dalvikvm: Could not find class 'android.app.NotificationChannel', referenced from method org.schabi.newpipelegacy.App.setUpUpdateNotificationChannel

09-13 20:10:11.260  6183  6183 E dalvikvm: Could not find class 'android.app.NotificationChannel', referenced from method org.schabi.newpipelegacy.App.initNotificationChannel

09-13 20:10:11.325  6183  6183 I ACRA    : ACRA is enabled for org.schabi.newpipelegacy, initializing...

09-13 20:10:11.445  6170  6170 E AndroidRuntime: java.lang.RuntimeException: Unable to create application org.schabi.newpipelegacy.App: java.lang.NullPointerException

09-13 20:10:11.445  6170  6170 E AndroidRuntime: 	at org.schabi.newpipelegacy.CheckForNewAppVersionTask.getCertificateSHA1Fingerprint(Unknown Source)

09-13 20:10:11.445  6170  6170 E AndroidRuntime: 	at org.schabi.newpipelegacy.CheckForNewAppVersionTask.isGithubApk(Unknown Source)

09-13 20:10:11.445  6170  6170 E AndroidRuntime: 	at org.schabi.newpipelegacy.CheckForNewAppVersionTask.onPreExecute(Unknown Source)

09-13 20:10:11.445  6170  6170 E AndroidRuntime: 	at org.schabi.newpipelegacy.App.onCreate(Unknown Source)

09-13 20:10:19.400  6183  6183 E ACRA    : ACRA caught a RuntimeException for org.schabi.newpipelegacy

09-13 20:10:19.400  6183  6183 E ACRA    : java.lang.RuntimeException: Unable to create application org.schabi.newpipelegacy.App: java.lang.NullPointerException

09-13 20:10:19.400  6183  6183 E ACRA    : 	at org.schabi.newpipelegacy.CheckForNewAppVersionTask.getCertificateSHA1Fingerprint(Unknown Source)

09-13 20:10:19.400  6183  6183 E ACRA    : 	at org.schabi.newpipelegacy.CheckForNewAppVersionTask.isGithubApk(Unknown Source)

09-13 20:10:19.400  6183  6183 E ACRA    : 	at org.schabi.newpipelegacy.CheckForNewAppVersionTask.onPreExecute(Unknown Source)

09-13 20:10:19.400  6183  6183 E ACRA    : 	at org.schabi.newpipelegacy.App.onCreate(Unknown Source)

09-13 20:10:19.415  2454  2637 D CrashAnrDetector: processName: org.schabi.newpipelegacy:acra

09-13 20:10:19.705  2454  2464 D Prevent : action: app died, package: org.schabi.newpipelegacy--org.schabi.newpipelegacy, count: 1

09-13 20:10:19.705  2454  2464 I ActivityManager: Process org.schabi.newpipelegacy (pid 6183) (adj 0) has died.

09-13 20:10:19.840  2454  2464 D Prevent : allow start activity org.schabi.newpipelegacy/.MainActivity

09-13 20:10:19.905  2454  4548 V Prevent : launch, current: [org.schabi.newpipelegacy]

09-13 20:10:19.905  2454  4548 V Prevent : pid 6183 is not for org.schabi.newpipelegacy

09-13 20:10:19.905  2454  4548 D Prevent : action: start activity, package: org.schabi.newpipelegacy, count: 1

09-13 20:10:20.050  6348  6348 E dalvikvm: Could not find class 'android.app.NotificationChannel', referenced from method org.schabi.newpipelegacy.App.setUpUpdateNotificationChannel

09-13 20:10:20.050  6348  6348 E dalvikvm: Could not find class 'android.app.NotificationChannel', referenced from method org.schabi.newpipelegacy.App.initNotificationChannel

09-13 20:10:20.100  6348  6348 I ACRA    : ACRA is enabled for org.schabi.newpipelegacy, initializing...

09-13 20:10:20.565  6348  6348 E ACRA    : ACRA caught a RuntimeException for org.schabi.newpipelegacy

09-13 20:10:20.565  6348  6348 E ACRA    : java.lang.RuntimeException: Unable to create application org.schabi.newpipelegacy.App: java.lang.NullPointerException

09-13 20:10:20.565  6348  6348 E ACRA    : 	at org.schabi.newpipelegacy.CheckForNewAppVersionTask.getCertificateSHA1Fingerprint(Unknown Source)

09-13 20:10:20.565  6348  6348 E ACRA    : 	at org.schabi.newpipelegacy.CheckForNewAppVersionTask.isGithubApk(Unknown Source)

09-13 20:10:20.565  6348  6348 E ACRA    : 	at org.schabi.newpipelegacy.CheckForNewAppVersionTask.onPreExecute(Unknown Source)

09-13 20:10:20.565  6348  6348 E ACRA    : 	at org.schabi.newpipelegacy.App.onCreate(Unknown Source)

09-13 20:10:20.700  2454  2464 D Prevent : action: app died, package: org.schabi.newpipelegacy--org.schabi.newpipelegacy, count: 1

09-13 20:10:20.700  2454  2464 I ActivityManager: Process org.schabi.newpipelegacy (pid 6348) (adj 0) has died.

09-13 20:10:20.700  2454  2464 W ActivityManager: Force removing ActivityRecord{444d5c68 u0 org.schabi.newpipelegacy/.MainActivity}: app died, no saved state

09-13 20:10:21.485  2454  3906 V Prevent : pid 6348 is not for org.schabi.newpipelegacy

09-13 20:10:21.485  2454  3906 D Prevent : action: app died, package: org.schabi.newpipelegacy--org.schabi.newpipelegacy, count: 0

09-13 20:10:21.485  2454  3906 I ActivityManager: Process org.schabi.newpipelegacy:acra (pid 6170) (adj 0) has died.

09-13 20:10:42.600  6449  6449 E dalvikvm: Could not find class 'android.app.NotificationChannel', referenced from method org.schabi.newpipelegacy.App.setUpUpdateNotificationChannel

09-13 20:10:42.600  6449  6449 E dalvikvm: Could not find class 'android.app.NotificationChannel', referenced from method org.schabi.newpipelegacy.App.initNotificationChannel

09-13 20:10:42.825  6449  6449 E AndroidRuntime: java.lang.RuntimeException: Unable to create application org.schabi.newpipelegacy.App: java.lang.NullPointerException

09-13 20:10:42.825  6449  6449 E AndroidRuntime: 	at org.schabi.newpipelegacy.CheckForNewAppVersionTask.getCertificateSHA1Fingerprint(Unknown Source)

09-13 20:10:42.825  6449  6449 E AndroidRuntime: 	at org.schabi.newpipelegacy.CheckForNewAppVersionTask.isGithubApk(Unknown Source)

09-13 20:10:42.825  6449  6449 E AndroidRuntime: 	at org.schabi.newpipelegacy.CheckForNewAppVersionTask.onPreExecute(Unknown Source)

09-13 20:10:42.825  6449  6449 E AndroidRuntime: 	at org.schabi.newpipelegacy.App.onCreate(Unknown Source)

09-13 20:10:50.775  2454  2637 D CrashAnrDetector: processName: org.schabi.newpipelegacy:acra

09-13 20:10:52.380  2454  4586 D Prevent : action: app died, package: org.schabi.newpipelegacy--org.schabi.newpipelegacy, count: 0

09-13 20:10:52.380  2454  4586 I ActivityManager: Process org.schabi.newpipelegacy:acra (pid 6449) (adj 0) has died.

09-13 20:10:52.385  2454  4586 W ActivityManager: Service crashed 2 times, stopping: ServiceRecord{44a8cc78 u0 org.schabi.newpipelegacy/org.acra.sender.LegacySenderService}

---- Sep 13, 2020 8:11:21 PM ----

Expand fdroid app description about differences to the old Newpipe app

Hi

As of today there are two new releases on fdroid, Newpipe 16.0 and this new Newpipe Legacy 15.1.
To the user they look the same, use the same database and seem to be developed by the same team. I don't know the differences and can't decide which app to keep. Please add some information for the normal user, I would suggest to the fdroid app description. (Or here?)
Thx

Legacy version blackberry OS Version: `qnx Android 4.3-18` also available for testing.

Summary: I have BB z30 device qnx Android 4.3-18. Was using NewPipe 0v0.14.2 but yesterday stopped playing videos. Found @friendlyanon NewPipeLegacy version installed from fdroid. Works!. Thanks for much for maintaining legacy version. Can do future testing if you want.


I have a Blackberry z30. I used to use SuperTube, a native BB YouTube application but it stopped working due to decrypt error. I used NewPipe by installing the APK. It works very well with all the features including background play. The OS Version gives: qnx Android 4.3-18.

I was using NewPipe 0v0.14.2. Yesterday the decrypt error started and I came across your Legacy version through TeamNewPipe/NewPipe#2259 while searching for a solution. I never knew NewPipe stopped supported 4.1-4.3

I'm so glad that @friendlyanon is maintaining a legacy version. It works on the Blackberry. Hope the legacy project will continue for a long time. I can be available if you want to test on blackberry device. Thanks a lot!

Use Conscrypt

It would be nice if you used Conscrypt in NewPipe Legacy, so that you could use TLS 1.2-only services on Android devices that don't support TLS 1.2. It'll add a few MBs to the APK size though.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.