ORIGINAL REDDIT POST

Making IPTV VOD/Series available through Plex/Jellyfin offline

Since IPTV providers don't use an optimized content delivery networks, the video stream often lags and takes time to buffer, which results in a poor viewership experience. Is there any *arr middleware that interfaces with an Xtream Code-based IPTV service,…

Original postr/selfhosted

Since IPTV providers don't use an optimized content delivery networks, the video stream often lags and takes time to buffer, which results in a poor viewership experience. Is there any *arr middleware that interfaces with an Xtream Code-based IPTV service, pre-downloads selected VOD/Series streams, and makes those available through Plex/Jellyfin? I heard about Dispatcharr, but not sure if it would be suitable for this purpose.

Collected discussion

14 comments

u/asimovs-auditor

Expand the replies to this comment to learn how AI was used in this post/project.

u/Zedan24

Sure but OP is asking about VOD.

u/theH0rnYgalOP

With IPTV, you can start streaming your favorite title pretty much instantly without needing to wait for the download to be complete. Not to say that not all VOD/Series will be instantly available. IPTV lacks high-resolution content, which matters only for select contents.

u/theH0rnYgalOP

How difficult would it be to add support for downloading select contents offline?

u/zachfive87

Hmmmm, probably not to difficult. And to be completely transparent here this app was built with the help of ai. When I have some spare time I'll look into it, I've got some tokens to burn, but I'm busy with work and family and stuff. Maybe can carve out some time this weekend.

u/StewartDC8

This is the one I use. If there's too many .strm files generated, my jellyfin seems to take forever scanning them, but it seems to work okay

u/Comfortable_Mango245

exactly . its 500TB to 1PB+ of instantly available video on demand. It baffles me how anyone thinks there is any replacement for live TV though. with iptv you get both. In any event Dispatcharr running on docker is absolutely amazing for live IPTV and there is a plugin available for it that does exactly what you asked about . Dispatcharr is a game changer as well for being a quality tuning app that feeds Jellyfin the streams. Jellyfin using typical direct m3u files or even pre editied ones from say iptveditor would frequently do the pause then drop so you have to restart the stream and it would buffer at times etc. Dispatcharr does it all. you can edit your playlist and arrange it how you want then feed the m3u it creates to jellyfin and from there jellyfin loads like usual but dispatcharr actuall is what tunes the feed for jellyfin solving all of those issues . then add in this plugin that you can get right from the dispatcharr apps plugin spot and youd be golden. https://github.com/R3XCHRIS/VOD2MLIB

u/zachfive87

Here my project, vodstrm. You can set the provider to "Import Selected" and cherry pick your content from the library page. Or can set it to "Generate All" and have the entire provider catalog generate .strm files. There are a ton of other options like apply filters, quality settings, and provider priority (if you have multiple providers). This doesn't download the providers content, but rather generates a .strm file that can be ingested by Jellyfin. Then I suppose you could set a bitrate limit in jellyfin to force transcoding of the stream and let the buffer a bit. But I've had zero issue from my provider direct streaming VOD content.

u/Loud_Banana_59

its different if you want to live stream sport for example, piracy can only go so far :)

u/anditails

Your Github mentions Plex, but Plex doesn't support .strm files - unless you have some other way?

u/zachfive87

Update vodstrm now supports downloading. Recommend setup for this would look something like this. Install using the instructions on github. Remember to use the .env and change the SECRET_KEY and TZ variables. You can also change the VOD_PATH to something other than the default (compose directory), either way you will need to also map this directory in your jellyfin or plex container. Run the container, add a provider (m3u url, xc, or local m3u file), then go to "Tasks and Schedules" page. Set the provider to "Import Selected" and run a manual ingest. Also worth setting up a global schedule to refresh provider content. Then head to the Library page and you can now download series and movies. You can check their status on the Download page (no visual progress indicator/time remaining yet, I'll add that feature next). You can configure download behavior from the Integrations page, like concurrent download limits, output file type, etc. You can also "Follow" a series or a specific season of a series and choose Download as the method type. This way you can say Follow Season "x" of a series, and when your provider adds new episodes and vodstrm runs the scheduled ingest, it will automatically download the newly added episode. If on the Library page the poster images for titles do not appear, this means your provider doesn't supply a tvg-logo in their m3u data. If you want posters you can create a tmdb account, and put your api key in the tmdb integration on the Integrations page. I would also suggest, before downloading anything, to check your series and movie titles to ensure you don't first need to apply a filter to remove/clean up titles. Not all providers name their content the same, and while I've done my best to account for this out of the box, there is no one size fits all solution. The readme is pretty detailed, but if you need further assistance or have any questions just shoot me a dm.

u/Zedan24

Why reinvent the wheel? Just use the *arr stack like everyone else. Paying for piracy seems odd.

u/__aurvandel__

There is a dispatcharr plugin that did this. I ended up disabling it though because it just never seemed to work right in jellyfin. However, my jellyfin instance has some problems so I'll probably try it again once I get annoyed enough to blow it up. Maybe on a clean setup it will work. https://github.com/R3XCHRIS/VOD2MLIB#readme

u/StewartDC8

If you can get the list of all the streams out of your m3u file, I think you can use ffmpeg to convert specific streams into a file