Giter Site home page Giter Site logo

teamnewpipe / newpipe-legacy Goto Github PK

View Code? Open in Web Editor NEW
130.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 Introduction

NewPipe

A libre lightweight streaming frontend for Android.


ScreenshotsDescriptionFeaturesUpdatesContributionDonateLicense

WebsiteBlogFAQPress


Read this in other languages: English, 한국어.

WARNING: THIS IS A BETA VERSION, THEREFORE YOU MAY ENCOUNTER BUGS. IF YOU DO, OPEN AN ISSUE VIA OUR GITHUB REPOSITORY.

PUTTING NEWPIPE OR ANY FORK OF IT INTO THE GOOGLE PLAY STORE VIOLATES THEIR TERMS AND CONDITIONS.

Screenshots

Description

NewPipe does not use any Google framework libraries, nor the YouTube API. Websites are only parsed to fetch required info, so this app can be used on devices without Google services installed. Also, you don't need a YouTube account to use NewPipe, which is copylefted libre software.

Features

  • Search videos
  • Display general info about videos
  • Watch YouTube videos
  • Listen to YouTube videos
  • Popup mode (floating player)
  • Select streaming player to watch video with
  • Download videos
  • Download audio only
  • Open a video in Kodi
  • Show next/related videos
  • Search YouTube in a specific language
  • Watch/Block age restricted material
  • Display general info about channels
  • Search channels
  • Watch videos from a channel
  • Orbot/Tor support (not yet directly)
  • 1080p/2K/4K support
  • View history
  • Subscribe to channels
  • Search history
  • Search/watch playlists
  • Watch as enqueued playlists
  • Enqueue videos
  • Local playlists
  • Subtitles
  • Livestream support
  • Show comments

Supported Services

NewPipe supports multiple services. Our docs provide more info on how a new service can be added to the app and the extractor. Please get in touch with us if you intend to add a new one. Currently supported services are:

  • YouTube
  • SoundCloud [beta]
  • media.ccc.de [beta]
  • PeerTube instances [beta]

Updates

When a change to the NewPipe code occurs (due to either adding features or bug fixing), eventually a release will occur. These are in the format x.xx.x . In order to get this new version, you can:

  1. Build a debug APK yourself. This is the fastest way to get new features on your device, but is much more complicated, so we recommend using one of the other methods.
  2. Add our custom repo to F-Droid and install it from there as soon as we publish a release. The instructions are here: https://newpipe.net/FAQ/tutorials/install-add-fdroid-repo/
  3. Download the APK from Github Releases and install it as soon as we publish a release.
  4. Update via F-droid. This is the slowest method of getting updates, as F-Droid must recognize changes, build the APK itself, sign it, then push the update to users.

We recommend method 2 for most users. APKs installed using method 2 or 3 are compatible with each other, but not with those installed using method 4. This is due to the same signing key (ours) being used for 2 and 3, but a different signing key (F-Droid's) being used for 4. Building a debug APK using method 1 excludes a key entirely. Signing keys help ensure that a user isn't tricked into installing a malicious update to an app.

In the meanwhile, if you want to switch sources for some reason (e.g. NewPipe's core functionality was broken and F-Droid doesn't have the update yet), we recommend following this procedure:

  1. Back up your data via Settings > Content > Export Database so you keep your history, subscriptions, and playlists
  2. Uninstall NewPipe
  3. Download the APK from the new source and install it
  4. Import the data from step 1 via Settings > Content > Import Database

Contribution

Whether you have ideas, translations, design changes, code cleaning, or real heavy code changes, help is always welcome. The more is done the better it gets!

If you'd like to get involved, check our contribution notes.

Translation status

Donate

If you like NewPipe we'd be happy about a donation. You can either send bitcoin or donate via Bountysource or Liberapay. For further info on donating to NewPipe, please visit our website.

Bitcoin Bitcoin QR code 16A9J59ahMRqkLSZjhYj33n9j3fMztFxnh
Liberapay Visit NewPipe at liberapay.com Donate via Liberapay
Bountysource Visit NewPipe at bountysource.com Check out how many bounties you can earn.

Privacy Policy

The NewPipe project aims to provide a private, anonymous experience for using media web services. Therefore, the app does not collect any data without your consent. NewPipe's privacy policy explains in detail what data is sent and stored when you send a crash report, or comment in our blog. You can find the document here.

License

GNU GPLv3 Image

NewPipe is Free Software: You can use, study share and improve it at your will. Specifically you can redistribute and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

newpipe-legacy's People

Contributors

alexander-- avatar avently avatar b0pol avatar chr56 avatar comradekingu avatar edcaron avatar emintufan avatar fredman95 avatar friendlyanon avatar gregarkhipov avatar haalomc avatar isira-seneviratne avatar kapodamy avatar karyogamy avatar krtkush avatar marulinko avatar mauriciocolli avatar medavox avatar naofum avatar nautilusx avatar opusforlife2 avatar s8321414 avatar santossi avatar stypox avatar thescrabi avatar tobigr avatar wb9688 avatar weblate avatar yarons avatar yausername avatar

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

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

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)


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.

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


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.

[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.

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

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.

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)


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-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

[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] 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.

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

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


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)


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":""}

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!

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.

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 ----

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.

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.

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)

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)


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)

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.

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

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


URL decryption error

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

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.

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

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

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


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...

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

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.