polymorphicshade / Tubular

A fork of NewPipe that implements SponsorBlock and ReturnYouTubeDislike.
GNU General Public License v3.0
1.46k stars 38 forks source link

Sponsorblocks applied to downloads #117

Open augmentedagent opened 1 month ago

augmentedagent commented 1 month ago

Checklist

Feature description

Apply sponsorblocks to downloaded content.

Why do you want this feature?

Currently, when downloading content (specifically audio only), the content is downloaded and saved without applying sponsorblocks.

Why ist the feature relevant to this fork?

This fork implements the sponsorblock functionality.

Additional information

No response

HairyMilkshakes commented 1 month ago

Is that even possible? Unless you're talking about playing downloaded videos through Tubular?

augmentedagent commented 1 month ago

No not proposing playing downloaded content through Tubular. I don't know how sponsorblock is implemented in Tubular, but it is able to be done through yt-dlp - the content is downloaded, then sponsorblock timecodes are applied and the resulting file is saved sans the blocked bits. Knowing yt-dlp, this is probably done by running through ffmpeg with the cuts from sponsorblock, but orchestrated by yt-dlp.

I was suggesting that Tubular might be able to do the same thing at the end of the download action.

HairyMilkshakes commented 1 month ago

Interesting, never knew that. That would be really good.

qgustavor commented 1 month ago

I should add one crucial information: that's really useful to download music without non-music segments. There were times I preferred downloading music over yt-dlp over Tubular only because it supports Sponsorblock.

polymorphicshade commented 1 month ago

In a version of NPxSB, I had an experimental feature of having an offline video player that worked with SponsorBlock.

It was a hack and didn't work very well... I have yet to implement something like this in Tubular because It think the core implementation should be in NewPipe (see: https://github.com/TeamNewPipe/NewPipe/issues/10542).

Nonetheless, I really like the idea of incorporating yt-dlp in Tubular. There are several offline video players on android already, so just adding yt-dlp in Tubular would bridge the gap nicely I think.

augmentedagent commented 1 month ago

There are several offline video players on android already, so just adding yt-dlp in Tubular would bridge the gap nicely I think.

Yes, and in my use case it's mainly for audio files for which there are also numerous players. Typically I just use the audio player within my file browser since it supports m4a nicely.

canadiannomad commented 1 month ago

I listen to podcasts that are downloaded.. This would be nice for that as well.

nucspl commented 1 month ago

If it's of any help, yt-dlp does have an in-built function that omits including SponsorBlock segments from the downloaded file itself. However, I don't think it's customisable or is able to read user-made segments. I think what could be done instead is download the pieces that aren't SponsorBlock segments — with respect to user-made segments via Tubular — using yt-dlp, then stitch them together via Ffmpeg. I don't know if Ffmpeg works on Android, though.

Seeing this issue is a little funny to me, actually. A few days ago, I was thinking of issuing a feature request to replace the NewPipe downloader with yt-dlp outright, and this issue was one of the things I cited in a draft — the others pertained to the ability to choose specific stream codecs.

joelpeapen commented 1 month ago

There's a good YouTube downloader app called YTDLnis using yt-dlp that incorporates sponsor block

rambalachandran commented 3 weeks ago

I also recommend having a look at seal for inspiration on integrating yt-dlp for Android