Jump to content

Plugin: Export VODS from .m3u - split m3u livetv, tvshows, movies (Going BETA!!)


Recommended Posts

mickle026
Posted (edited)

I have done the code, its all working as far as I can tell.

Currently the progress bar doesnt work in the scheduled task, but i am not worried about that yet, the scheduled task does though.

I have enabled the plugin to take 3 m3u urls or paths, but it is designed so that it can do it all from one m3u.
It will split the m3u into LiveTV,TV Shows & Movies, and if you set the option it will save the split m3u files.

In effect you can choose not to load your m3u directly from your stream provider into Live TV m3u Tuner, instead use the plugin to split off the vods,  to a Movie & TV show directory, create a clean LiveTV m3u (without the VODS) and point the Live TV Tuner to load that from your save location of this plugin instead.

Note: If you have the log on - as most processes are Asynchronous , it may write to the log out of order.

Let me know whats not working, or what it is missing if anything? Other than the progress indicator in the scheduled task...

DO NOT OUTPUT STRMS TO YOUR LOCAL MEDIA FOLDERS THAT CONTAIN OTHER MEDIA - KEEP THESE SEPERATE

the update and delete mechanism will delete anything else that is not in the m3u files!

USE AT YOUR OWN RISK

13-02-2025 - Original Release
Removed as requested

26-02-2025 - Updated DLL
Should address check boxes for m3u output not saving states.
Removed due to build error

28-02-2025 
Added fields for inclusion words for VOD detection

01-03-2025
Finally got the new system to build a working DLL
Saving should be fixed
Added a textbox to allow adding your own VOD keywords

01-03-2025 post 2
No input file error fixed.  Win 11 & MS Edge seem to keep re-using cached versions even when you replace and reboot.  So you might have to clear data in the browser.
Added option to delete any folder content not in the current m3u's- i.e. obsolete entries, (previously wasn't an option)

02-03-2025

Fixed URL validity check (needs verifying that it is working for other users)
fixed error stopping on certain m3u types (might not have caught everything but those supplied will now work)
Still to do - Parse extremely big m3u files properly to Live-TV, TV Show VOD and Movie VOD, they are parsing, but may not be grouped properly yet,
I.e. some TV Shows may appear in movies and vice versa or stay as Live TV Channels, still need to figure out how to catch them all properly in certain m3u naming scenarios.

03-03-2025 03.40am (GMT)
Several fixes - this is the latest build.
 

03-03-2025 21.00pm (GMT)
Lots of updates, too many to mention, please read the thread if you want to know what has changed.

04-03-2025 02.50am (GMT)

Seems to be all good :) , not tested the override boxes yet - though

 

06-03-2025

Many things converts to multi-threaded for speed increases.
Multi-threading the log is the biggest difference of all, this can reduce processing time by many HOURS if the m3u input files are large.
Not logging at all is the fastest option.
A huge 135mb m3u with no logging and ignore filters on took 4mins 17 seconds to completely read and create the strm files.
Read this thread for more information

07-03-2025 - from testing to beta release

I am calling this an official beta now.
Its working extremely fast.  With no logging on a test run of a 135mb input m3u took just 1 minute 22 seconds.
Erroneous directory/strm creation fixed.
Logging can slow the operation down a huge amount, its recommended only for debugging.
Read more in the thread
 

07.Mar.2025 - 15:33:28 Task Started at: 07/03/2025 15:33:28
07.Mar.2025 - 15:34:50 Task Ended at: 07/03/2025 15:34:50
07.Mar.2025 - 15:34:50 Task Duration: 00:01:22.34


 

VODtoSTRMscheduledTask.dll

 

17-03-2025

This is a completely re-written and revamped version (for testing)
Lots of differences, whole new "brain" , core.
Current known issue, not fetching posters or icons

VODtoSTRMscheduledTask.dll

 

m3utostrm.thumb.jpg.1e24cdfd645e9b7d5babb70da987065e.jpg

 

 

ScheduledTask.jpg.f6e17efe4fcaf6e2fe41125fc5a4416f.jpg

 

 

Edited by mickle026
updated to export split m3u files
  • Thanks 3
  • 2 weeks later...
mickle026
Posted

No Comments?

Is it working well or not?

LazyMonday91
Posted (edited)

Hello @mickle026

Thank you for this amazing plugin 🙌
For now i'm trying it.., the test not working when i lunch the task , it stop directly..

image.png.fdf8797adfe314959c29edee4790d89b.png

Kind regard,

Edited by LazyMonday91
mickle026
Posted

Hi thanks for the response.

However that really doesn't tell me much.

Can you turn on the plugins internal logging, as it doesn't use emby's logging except to show what you just did.  Attach the log.

Also can you show me your setup, whether it's a file, or an URL you are loading.

If possible can you show me some sample lines from your m3u file, delete parts of the URL and the login details, I only need the format of the #extif line

This way I will have a better idea of what is or is not happening.

 

 

Thanks

VicMoore
Posted (edited)

This is very interesting.  I wish I was smart enough to understand all of what you are doing. I know a little about m3u files from creating a JS client to play VOD. From what I understand from your description, you are fetching videos via using their m3u specification. Then the data for the videos is stored in the Emby library and later played via Emby.  Am I right?  Could this idea be used to create an Emby TV channel? 

By the way, I never really understood STRUM files. Or I should say, I never understood how, why and where to use them.

Vic

Edited by VicMoore
mickle026
Posted (edited)

@VicMoore

strm files are similar to windows shortcut files in behaviour within Emby (structure is just text).  They are essentially a place holder that has a link to a video in it.  Emby reads it as if it is actually a media file such as mp4, and adds it to your library in the same way.  Because there is no ffmpeg probe of the "remote" file, it cannot do everything that it can with local media, the media is not probed until it is played.  So posters are added but things like codec data etc are not added yet.  So further help is requires like the plugin "strm extract", available in this plugin forum, to force the media to be probed.

The m3u file is essentially similar, but formatting is different and it can contain 1000's of lines of different things , videos, live-tv, music etc.

#EXTINF:-1 tvg-id="" tvg-name="A Clockwork Orange (1971)" tvg-logo="http://somesiteorother.com/images/0066921.jpg"group-title="VOD"
http://somesiteorother.com/movie/XXXXXXX/XXXXXXX/17944.mkv

Here is a sample, just copied from elsewhere in this forum.
tvg-id = tv channel id 
tvg-name = tv channel name
tvg-logo = the tv logo
group-title = the subsection it belongs in, in ip-tv programs you see lists of countries or genres etc.

There can be more identifiers such as a link to a tv-guide xml file

So what I am doing, is reading the m3u file and separating Live-TV, Movies, and TV-Shows,

The plugin then has the options:

Write all the m3u items as separate m3u files, this allows the user to then import only live tv into the tv tuner.  Keeping the tv-show boxsets and Movie VOD's out of the tuner.

Write the rest as .strm files and folders - this allows the user to create a folder full of tv-shows and/or a folder full of movies, that will import into Emby the same as a local library, you can write them to an already monitored folder if you like so they are automatically picked up.

The plugin also checks what files are on the drive that are no longer in the m3u file, so if films or tv-shows were removed by the provider and new ones added, it will delete and create as necessary.  Thus the USER DOES NOT want to be writing them to their local media directories!!  There is no undelete!

So in a nutshell, its not really fetching videos, but creating shortcuts to them in a library that work the same as having them locally, but instead the system plays a remote file provided by the m3u provider and adding the ability to add only actual live tv to the tv tuner.   Lots of m3u providers offer all of these in one file this but it can flood the tv tuner in Emby with thousands of unwanted entries in there....  Even if they offer in separate files, there has been no easy way to achieve all this, i.e. creating the directories and .strm files within Emby itself automatically.  This plugin does this all.

 

Edited by mickle026
VicMoore
Posted

I have a lot to learn. You explained the plugin perfectly. 

vic

LazyMonday91
Posted (edited)

Hello @mickle026test finished, the Log file with debug mode activate is include :)

All worked perfectly , just have a bug when selecting and validate type of extract (Tv - Series - movies) this 3 settings returns to all checked after validation of the config, maybe just a visual glitch because I got everything in the m3u i selected.

screenshot of final result and a sample of the M3u file generated :D

Thank you for all this work and very nice results !!
❤️

best regards,

LzMembyserver.txt

Strm Result 2025-02-24 193356.png

sample lines from generated M3U files 2025-02-24 184029.png

ScheduledTask-[M3UToStrm]24.févr..2025 - 19.20.47.txt

Edited by LazyMonday91
Posted

Hi how do you install on macOS?

mickle026
Posted

Copy the dll to your programdata/plugins folder and restart the server

gillmacca01
Posted

Only just found out about this. Currently aware from home, but will be back home at the weekend and will try installing it, and will give feedback

grimevil
Posted

Does this work with url's or does it need a downloaded copy of the m3u?

mickle026
Posted
51 minutes ago, grimevil said:

Does this work with url's or does it need a downloaded copy of the m3u?

I haven't tested the URLs, but the programming code logic is there to handle either.  Try it, and let me know.

Posted (edited)

I might be an idiot. I placed the DLL in the plugins folder, installed it from the plugins section of emby and restarted the server. It appears installed but then what do I do next to use it?

Edited by BigIrn
Posted

Ok so on macos, there are 2 plugin folders. I put the dll in both and now I see it. However It's not working.

27.Feb.2025 - 20:01:53 -----------------------------------------------------------------------
27.Feb.2025 - 20:01:53 Create Movie Stream Files From M3U Scheduled Task Triggered.
27.Feb.2025 - 20:01:53 -----------------------------------------------------------------------
27.Feb.2025 - 20:01:53 No Input Files - Aborting Import .m3u stage
27.Feb.2025 - 20:01:53 -----------------------------------------------------------------------
27.Feb.2025 - 20:01:53 Create Movie Stream Files From M3U Scheduled Task Triggered.
27.Feb.2025 - 20:01:53 -----------------------------------------------------------------------
27.Feb.2025 - 20:01:53 No Input Files - Aborting Import .m3u stage

m3u:

#EXTM3U url-tvg="http://m3u4u.com/epg/REDACTED"
#EXTINF:-1 tvg-id="(no tvg-id)" tvg-name="### UK CINEMA HEVC/4K ###" tvg-logo="" group-title="UK| SKY CINEMA ʰᵉᵛᶜ",### UK CINEMA HEVC/4K ###
http://REDACTED.ts
#EXTINF:-1 tvg-id="SkyCinemaThriller.uk" tvg-name="UK: SKY CINEMA THRILLER HEVC 4K" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s50176_dark_360w_270h.png" group-title="UK| SKY CINEMA ʰᵉᵛᶜ",UK: SKY CINEMA THRILLER HEVC 4K
http://REDACTED.ts
#EXTINF:-1 tvg-id="(no tvg-id)" tvg-name="UK: SKY CINEMA SELECT/FEEL GOOD HEVC 4K" tvg-logo="http://icon-tmdb.me/stalker_portal/misc/logos/320/6469.jpg?92001" group-title="UK| SKY CINEMA ʰᵉᵛᶜ",UK: SKY CINEMA SELECT/FEEL GOOD HEVC 4K
http://REDACTED.ts
#EXTINF:-1 tvg-id="SkyCinemaSciFiHorror.uk" tvg-name="UK: SKY CINEMA SCIFI/HORROR HEVC 4K" tvg-logo="http://icon-tmdb.me/stalker_portal/misc/logos/320/6473.jpg?62024" group-title="UK| SKY CINEMA ʰᵉᵛᶜ",UK: SKY CINEMA SCIFI/HORROR HEVC 4K
http://REDACTED.ts
#EXTINF:-1 tvg-id="SkyCinemaPremiere.uk" tvg-name="UK: SKY CINEMA PREMIER HEVC 4K" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s21107_dark_360w_270h.png" group-title="UK| SKY CINEMA ʰᵉᵛᶜ",UK: SKY CINEMA PREMIER HEVC 4K
http://REDACTED.ts

 

Screenshot 2025-02-27 at 8.07.55 PM.png

mickle026
Posted

Not sure, but with the log saying no input files I have to ask, did you click save settings before triggering it?

Without saving settings in the web user interface, the server backend has no information written to the settings file to read from in order to do the task.

 

Kcircuit
Posted (edited)

This is an amazing idea, good work!

I've got it all installed but so far i havn't have any luck and the error log is showing.

 

Quote
28.Feb.2025 - 17:59:06 -----------------------------------------------------------------------
28.Feb.2025 - 17:59:06 Create Movie Stream Files From M3U Scheduled Task Triggered.
28.Feb.2025 - 17:59:06 -----------------------------------------------------------------------
28.Feb.2025 - 17:59:06 No Input Files - Aborting Import .m3u stage


My input M3u looks like this;

#EXTM3U
#EXTINF:0 group-title="Movie VOD",HD : Vessel 2014
#EXTGRP:Movie VOD
https://url.com/2196
#EXTINF:0 group-title="Movie VOD",HD : Frontier Sumatra 2019
#EXTGRP:Movie VOD
https://url.com/3195
#EXTINF:0 group-title="Movie VOD",HD : Last Stand At Saber River 1997
#EXTGRP:Movie VOD
https://url.com/3194


Similar to the ToD, it points to a url not a file (.m3u/.ts/ect..) I assume this is the issue.

 

Edited by Kcircuit
mickle026
Posted
5 hours ago, Kcircuit said:

This is an amazing idea, good work!

I've got it all installed but so far i havn't have any luck and the error log is showing.

 


My input M3u looks like this;

#EXTM3U
#EXTINF:0 group-title="Movie VOD",HD : Vessel 2014
#EXTGRP:Movie VOD
https://url.com/2196
#EXTINF:0 group-title="Movie VOD",HD : Frontier Sumatra 2019
#EXTGRP:Movie VOD
https://url.com/3195
#EXTINF:0 group-title="Movie VOD",HD : Last Stand At Saber River 1997
#EXTGRP:Movie VOD
https://url.com/3194


Similar to the ToD, it points to a url not a file (.m3u/.ts/ect..) I assume this is the issue.

 

Ah,

The plugin is currently reading a two line entry, yours is three lines, that's what the issue is.  I will have to re-visit the code and make some alterations so that your m3u format is also interpreted.

I could do with a better m3u example than this 1 entry, do you have one or know where I can get one?.  I do NOT need login details or anything like that, just the format of the lines for different things such as tv shows etc. so that I know what combinations  I need to split apart.

gillmacca01
Posted (edited)

Didn't work when I entered a URL (said no input file), but partially worked when adding a downloaded M3U

Presuming I have set it up correctly, it will except the downloaded M3U file and creates the folders and split M3U files, but there is nothing in the split M3U files

here are a couple of lines for the movies:

#EXTINF:-1 tvg-id="" tvg-name="NL| APPLE+ TV" tvg-logo="http://*********/piconsnew/Apple-TV-logo.png" group-title="NL| FILMS",NL| APPLE+ TV
http://line.myox.me:80/*******/1569086

#EXTINF:-1 tvg-id="" tvg-name="EN - Kinda Pregnant 4K (2025)" tvg-logo="http://*****/stalker_portal/screenshots/185/18468.jpg" group-title="4K NETFLIX MOVIES",EN - Kinda Pregnant 4K (2025)
http://line.myox.me:80/movie/******/1792483.mkv

The stars have just replaced the web address and username

I have attached the log file

ScheduledTask-[M3UToStrm]28.Feb.2025 - 14.03.58.txt

Edited by gillmacca01
mickle026
Posted (edited)

Try this build

@gillmacca01, @Kcircuit

Errornous build removed

Added code to ignore lines with EXTGRP,
Added code to include "vod|video on demand|movie|film|video|apple+ tv|netflix" as vods
Added code to log m3u Url Schema validation checks

 

Edited by mickle026
gillmacca01
Posted

This build isn't working at all. 

It is not appearing under plugins and under Scheduled tasks, it is not showing anything (not listed)

gillmacca01
Posted (edited)
17 minutes ago, mickle026 said:

Try this build
 

@gillmacca01, @Kcircuit

VODtoSTRMscheduledTask.dll

Added code to ignore lines with EXTGRP,
Added code to include "vod|video on demand|movie|film|video|apple+ tv|netflix" as vods
Added code to log m3u Url Schema validation checks

apple+ and netflix are just 2 examples. I have many more.

Maybe we need a section in the plugin, where we can add extra ones, otherwise we are going to have to keep asking you to add news ones (if new ones are added by the provider), also there are some VOD folders that I don't want to see (e.g. Bollywood)

Edited by gillmacca01
  • Agree 1
sftech13
Posted
On 2/12/2025 at 7:48 PM, mickle026 said:

 

 

Quick question for clarity

The plug-in will take my M3 of VOD or TV series and create a library folder rather than a live TV tuner input and be available as a library rather than a tag in live TV. 

mickle026
Posted
31 minutes ago, sftech13 said:

Quick question for clarity

The plug-in will take my M3 of VOD or TV series and create a library folder rather than a live TV tuner input and be available as a library rather than a tag in live TV. 

That kind of is what this plugin does. 

It reads the m3u, makes folders and strms of all the vods (tv show & movies), and recreates the m3u without the vods so that the tuner only gets live-tv channels.

However, it seems that users have different formats of m3u that are not all covered.  I will add a box where you can add keywords to include for export as vods.  It also seems I will also need to add a section for ignore as well.

  • Like 1
sftech13
Posted

Crazy, I have had something very similar to on my todo list. I want the VOD to be part of the library not the tuner. I will try yours out and let you know how it goes. 

 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...