-
Notifications
You must be signed in to change notification settings - Fork 417
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bandcamp] Handle paywalled tracks #1033
Conversation
@@ -57,6 +58,10 @@ public void onFetchPage(@Nonnull final Downloader downloader) | |||
// In this case, we are actually viewing an album page! | |||
throw new ExtractionException("Page is actually an album, not a track"); | |||
} | |||
|
|||
if (albumJson.getArray("trackinfo").getObject(0).isNull("file")) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are you sure that all tracks that have no streamable track are paid tracks? Can't the reason be different in some cases?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The other possible reason is that it is not available yet because the album is currently up for pre-order. For example, this album is right now: https://tamarmitchell.bandcamp.com/album/samos-return
However it is impossible to see whether all of the tracks can be played for free after the album is released, or whether the tracks will require purchase to play. Therefore I think it is an okay option to throw this exception in either case.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess otherwise we could test for unreleased_track
and throw a different exception if that is true. Is there an appropriate exception for this case? Otherwise I would stick with PaidContentException
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Personally, I think ContentNotAvailableException
is more appropriate, since the track is currently unavailable until the album is released, whether it's purchased or not.
However, it seems like the tracks that can't be played due to the album being in pre-order do not have their own pages yet. Therefore, I don't think it's a case that can occur in the StreamExtractor
. Going to the album in NewPipe and clicking on one of those tracks causes an error because the URL for them gets set to https://tamarmitchell.bandcamp.com/null
, so maybe it should be handled differently in the PlaylistExtractor
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see. I think I noticed the concatenation with null
before but was unsure about the best way to fix it.
Hi again @petlyh, thanks for opening another Bandcamp PR! One suggestion: because I didn't know about the Besides this, I'm very happy to see another Bandcamp fix from you. If you make another Bandcamp PR in the future, feel free to ping me directly so that I can have a look quicker :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks (and sorry for slow feedback loop, I didn't notice you pushing a commit somehow :/ )!
…s of 15-01-2024 into pre-unified-legacy This is a fork of TeamNewPipe/NewPipe-legacy that I have been patching for a few months now. There is no commit history as this has been a personal project up until today. Pulled in a major chunk of related commits for NewPipe Preunified from upstream TeamNewPipe/NewPipe repository: 1. Update NewPipe extractor to fetch likes count Fix TeamNewPipe/NewPipe#10624 2. Access Background Player Queue from Main menu by HybridAU TeamNewPipe/NewPipe#8419 3. Added Bandcamp Music Support Into NewPipeLegacy, Improve Bandcamp intent filters TeamNewPipe/NewPipe#3741 TeamNewPipe/NewPipe#6373 TeamNewPipe/NewPipe#6456 4. Disable sending metrics to Google when using Android System WebView TeamNewPipe/NewPipe#5337 5. Add basic resize functionality TeamNewPipe/NewPipe#3948 6. [media.ccc.de] Add recent & live stream kiosk TeamNewPipe/NewPipe#5251 TeamNewPipe/NewPipe#5286 [media.ccc.de] Fix service color TeamNewPipe/NewPipe#5258 7. Ability to see Pinned Comment added by dkramer95 TeamNewPipe/NewPipe#7577 8. Clicking on Title In Background Player Should Open Video Details TeamNewPipe/NewPipe#3808 by https://github.com/budde25 9. Added Swipe to Refresh for Channels New Videos in Subscription Feed TeamNewPipe/NewPipe#4893 10. [peertube] implement sepia search TeamNewPipe/NewPipe#5257 11. Allow installation on external storage by triallax in TeamNewPipe/NewPipe#6037 12. Change UA to privacy.resistFingerprinting TeamNewPipe/NewPipe#5649 by FireMasterK 13. Add formatting removal on paste for search TeamNewPipe/NewPipe#5912 by imericxu 14. Remember Last Selected Media Type For Downloads TeamNewPipe/NewPipe#4038 by vmazoyer 15. Improve search suggestion experience when remote ones can't be fetched TeamNewPipe/NewPipe#4029 by StyPox 16. Fix Download Button Not Visible After Playing Live Stream, Fix video detail controls visibility set inconsistently Add this commit by StyPox TeamNewPipe/NewPipe@dbb86d2 from TeamNewPipe/NewPipe#4362 17. [Background Player] Fix very small thumbnails in Video Detail Page by TobiGR in TeamNewPipe/NewPipe#5818 18. Add Always Expand Description In Appearance Settings TeamNewPipe/NewPipe#2998 by B0pol (Related) entries from search history Increased from 25 to 80 and Search Suggestions Entries from 3 to 60 commit copied from TeamNewPipe/NewPipe#2666 thanks to ergor 20. Fixes snackbar error on disabled likes count Fixes TeamNewPipe/NewPipe#7405 by TeamNewPipe/NewPipeExtractor#753 21. Fixed player controls not hiding after replay & Bluetooth headset button by Alexander-- TeamNewPipe/NewPipe#3547 22. update user agent in Downloader to firefox latest ESR 115 by Nickoriginal TeamNewPipe/NewPipe#8269 23. Changed Dark Theme Colors To Darker Variant by sauravrao637 TeamNewPipe/NewPipe#6244 24. Support for PeerTube Short Links TeamNewPipe/NewPipe#7353 25. Handle URLs for YouTube Shorts TeamNewPipe/NewPipe#7181 26. Fix playback speed not being updated in Background Player & Fix TeamNewPipe/NewPipe#8058 Fixed Combinedly by TeamNewPipe/NewPipe#6421 by Tobius and by seanzzy in TeamNewPipe/NewPipe#8244 27. Added comments disabled functionallity by litetex in TeamNewPipe/NewPipe#6483 28. [media.ccc.de] Fix service color TeamNewPipe/NewPipe#5258 29. Ignore ContentNotSupportedException caused by Bandcamp fan pages TeamNewPipe/NewPipeExtractor#1033 30. Crash when rotating device on unsupported channels TeamNewPipe/NewPipe#6696 31. Correct Gigaget's license from GPLv2 to GPLv3 TeamNewPipe/NewPipe#4892 32. Add basic resize functionality [Samsung Dex Now Supported] TeamNewPipe/NewPipe#3948 33. [Security] Update ktlint to 0.40.0 34. Fix security vulnerability update checkstyle / guava 35. Update ExoPlayer from 2.11.6 to 2.11.8 36. Update checkstyle, OkHttp, use Kotlin JDK8 by TacoTheDank added this commit TeamNewPipe/NewPipe@79e2bb3 from TeamNewPipe/NewPipe#3909 37. Use user agent of DownloaderImpl also in ReCapthaActivity TeamNewPipe/NewPipe#5215 38. Fix ACRA bug reports not containing stack trace, Do not init ACRA if inside its own process TeamNewPipe/NewPipe#3982 39. Remove deprecated calls to set Sender class to ACRA TeamNewPipe/NewPipe#3982 40.Use SubtitlesStream#getUrl instead of getURL TeamNewPipe/NewPipe#4120 41. Remove pbj=1 parameter from YouYube urls in recaptcha activity TeamNewPipe/NewPipe#5208 42. Set notification style in Android 11 to MediaStyle Thanks to XiangRongLin for Limted Support for preunified refer to this commit XiangRongLin@aa55a09 43. Click on title in background player opens video details TeamNewPipe/NewPipe#3808 44. Add 2K and 4K to the options list for default resolution TeamNewPipe/NewPipe#2968 45. Fix crash when opening video in local playlist tab Fixes TeamNewPipe/NewPipe#3887 by TeamNewPipe/NewPipe#3892 by wb9688 46. Handle ContentNotSupportedException TeamNewPipe/NewPipe#3300 47. [YouTube] Improve download speed by Theta-dev TeamNewPipe/NewPipe#9948 48. Disable commenter image when disabling thumbnails loading by 4D17Y4 Fixes TeamNewPipe/NewPipe#4205 TeamNewPipe/NewPipe#4350 49. Adapt opacity of popup close button to allow touches in other apps on Android >=11 Fixes TeamNewPipe/NewPipe#6770 TeamNewPipe/NewPipe#8279 50. Better error messages for SoundCloud and YouTube unavailable contents TeamNewPipe/NewPipe#5385 51. Mitigating long buffering on initial video playback by using custom progress-load-interval in exoplayer, Use 16 KiB as the default progressive load interval by karyogamy TeamNewPipe/NewPipe#7919 52. Support for opening YouTube Live URLs TeamNewPipe/NewPipe#9725 Co-Authored-By: Tobi <17365767+tobigr@users.noreply.github.com> Co-Authored-By: Stypox <stypox@pm.me> Co-Authored-By: Audric V. <74829229+audricv@users.noreply.github.com> Co-Authored-By: bopol <58657617+b0pol@users.noreply.github.com> Co-Authored-By: Isira Seneviratne <31027858+isira-seneviratne@users.noreply.github.com> Co-Authored-By: opusforlife2 <53176348+opusforlife2@users.noreply.github.com> Co-Authored-By: fynngodau <fynngodau@mailbox.org> Co-Authored-By: David Kramer <6166095+dkramer95@users.noreply.github.com> Co-Authored-By: Ethan Budd <budde25@protonmail.com> Co-Authored-By: triallax <triallax@tutanota.com> Co-Authored-By: Kavin <20838718+firemasterk@users.noreply.github.com> Co-Authored-By: Eric Xu <xeric.2002@gmail.com> Co-Authored-By: Vincent Mazoyer <17800856+vmazoyer@users.noreply.github.com> Co-Authored-By: Erol Gorancic <erol@gorancic.no> Co-Authored-By: Alexander-- <1107390+alexander--@users.noreply.github.com> Co-Authored-By: Saurav Rao <56369484+sauravrao637@users.noreply.github.com> Co-Authored-By: Nickoriginal <85299944+nickoriginal@users.noreply.github.com> Co-Authored-By: Ziyan Zhang <71145592+seanzzy@users.noreply.github.com> Co-Authored-By: litetex <40789489+litetex@users.noreply.github.com> Co-Authored-By: XiangRongLin <41164160+xiangronglin@users.noreply.github.com> Co-Authored-By: wb9688 <46277131+wb9688@users.noreply.github.com> Co-Authored-By: Okan25 <92695587+okan25@users.noreply.github.com> Co-Authored-By: Michael Van Delft <1610265+hybridau@users.noreply.github.com> Co-Authored-By: Taco <32376686+tacothedank@users.noreply.github.com> Co-Authored-By: ThetaDev <thetadev@magenta.de> Co-Authored-By: Aditya-Srivastav <54016427+4d17y4@users.noreply.github.com> Co-Authored-By: John Zhen Mo <zhenmogukl@gmail.com>
No NewPipe changes required.
Tracks that cannot be accessed without being purchased now show an appropriate error.
Fixes TeamNewPipe/NewPipe#8634