madiele / vod2pod-rss

Vod2Pod-RSS converts a YouTube or Twitch channel into a podcast with ease. It creates a podcast RSS that can be listened to directly inside any podcast client. VODs are transcoded to MP3 on the fly and no server storage is needed!
MIT License
207 stars 6 forks source link

[Feature request] yt-dlp sponsorblock flags #74

Open kzshantonu opened 1 year ago

kzshantonu commented 1 year ago

app version: 1.0.1


would be nice to have

kzshantonu commented 1 year ago

PS: love the project

madiele commented 1 year ago

Hi and thanks for enjoying the project! This is a natural feature to add but due to how I'm using yt-dlp only to get the stream URL and then transcode with ffmpeg on my own with it adding the flag will not work.

The 2 options are:

1) use the sponsorblock API to add named blocks timestamp to the description (some podcast clients allow for skipping based on chapters names). 2) Actually tell ffmpeg to cut around the transcoded stream, I still haven't researched it but my guess is that something can be done.

I think I will add the timestamp first and when that is done use the same logic for the the actual stitching of the stream.

If someone comes across this issue feel free to drop any knowledge they have in a possible solution using ffmpeg

kzshantonu commented 1 year ago

Hmm. I'm not very technical, but yt-dlp does allow outputting to stdout using -o -. ffmpeg could then take that from stdin and do what it needs to do.

Edit: not sure how seeking would work though

madiele commented 1 year ago

I had experimented with that and I know I had problems so I dropped it as an idea, but can't remember the real reason but I think seeking was one of them, when I have a bit of time I might try again.

Anyway if this article is correct I can also just do multiple ffmpeg commands in sequence and the client should not notice, due to how MPEG works, I will do some research and report back. http://www.mp3-tech.org/programmer/frame_header.html

edit for my own documentation: also I could try to use the -map_metadata -1 ffmpeg option to skip the ID3 metadata

if I ever want to edit ID3 data (es: add timestamps directly in the mp3) this might be interesting, chapters are an id3v2 feature, id3v2 max size is 16 MB https://docs.rs/id3/latest/id3/index.html