Jump to content

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


Recommended Posts

Posted

I getting these folder again, how can i get one folder with all series
image.png.177d3f95a7316a29614862255b0f5eaa.png

mickle026
Posted
26 minutes ago, graytinc said:

I getting these folder again, how can i get one folder with all series
image.png.177d3f95a7316a29614862255b0f5eaa.png

Don't create group folders, tick that option.

Apotropaic
Posted

Hi @mickle026I've sent you some beer money, not a lot but I hope it goes someway to address the effort you've put in to answer my questions and work on this.

I've upgraded my drive to an SSD and this is making a lot of difference, especially with the file IO operations. I think I'm pretty happy with how it all comes together but I have these few niggling queries.

1. The two different clean up options (Remove obsolete & Clean up after processing) - can you just describe their intended use cases and what the differences are. I've seen the first to also remove empty parent content directories, eg Movies, TV Shows etc.)

2. The VOD detection boxes for including/excluding key words - is just to prevent items being identified as Live TV, so they affect both Movies and TV Show VOD content?

Thanks!

mickle026
Posted

First of all thanks for the donation.

1. Delete options.

The first one removes anything that not in your output options , so anything that the current m3u processing hasn't got, so it keeps your directory up to date with your input m3u, removes everything else.  Of course if you are using a different m3u you probably untick that and keep the other items.  The choice is up to you.

The second basically cleans up empty folders or anything that is redundant.  So anything it failed to clear up before or has been altered externally.

 

2. The includes and ignores are for all types of content.  They are basically a way to filter what to keep and what not to keep form the m3u based on keywords.

Some users m3u's are huge with content from all over the world.  It allows you to keep only what you want and essentially dump/dispose of the rest. I.e. trim that list down.

 

In terms of the m3u if you open it with a text editor they are made up of basically 2 lines, the extinf line and the media URL line.  Some have more but I only read these two.

The plugin checks the data in these and accepts or rejects the line pair.  When the filtered internal m3u file is built from the 3 inputs , it then processes the internal m3u.

 

So in a nutshell everything actually just filters your m3u's and/or your output directory of strms.

Internally all three types of list are built, live TV, TV show, movies based on your filtered m3u.

What's written is just what you selected (✅ checked), and what is removed from the output directory depends on the ✅ options you chose.

I hope this makes sense.

  • Thanks 1
Posted

thank you, it's now working perfectly on series, what about the movies folder some movies are being put in a folder as shown here image.png.51a51cb0765e985ec2ff6f682f892e08.png

13 hours ago, mickle026 said:

Don't create group folders, tick that option.

 

Posted
1 hour ago, graytinc said:

thank you, it's now working perfectly on series, what about the movies folder some movies are being put in a folder as shown here image.png.51a51cb0765e985ec2ff6f682f892e08.png

 

This is my current group config :
image.png.1376304dc5bb8574653d3d240bc70ff5.png

mickle026
Posted
25 minutes ago, graytinc said:

This is my current group config :
image.png.1376304dc5bb8574653d3d240bc70ff5.png

Not sure what you are saying, are you saying these couple of movies are being exported to TV shows?

Posted
16 minutes ago, mickle026 said:

Not sure what you are saying, are you saying these couple of movies are being exported to TV shows?

These are movies that include the word 'Chapter' in their titles, and they are being organized into folders according to the chapter number. Each folder is labeled with either the number '1' or another number, which corresponds to the specific chapter number from the title. This entire process of categorization and organization is taking place within the main 'Movies' folder.
image.png.9ff026cead767db350bc8615215fc94c.pngimage.png.067e9de72f51e43a3f161ee7cce892d4.png

mickle026
Posted
58 minutes ago, graytinc said:

These are movies that include the word 'Chapter' in their titles, and they are being organized into folders according to the chapter number. Each folder is labeled with either the number '1' or another number, which corresponds to the specific chapter number from the title. This entire process of categorization and organization is taking place within the main 'Movies' folder.
image.png.9ff026cead767db350bc8615215fc94c.pngimage.png.067e9de72f51e43a3f161ee7cce892d4.png

Ok, so even though they are movies, the plugin must be continuing to detect season/episode information for them, so must have initially detected them as tvshows.

Any chance you can send me those particular lines of your m3u via pm?  There's 2 lines per entry.,  I don't mind if you obfuscate/scramble the main domain and the user/password, I just need the rest of it.

 

Thanks

fbrassin
Posted (edited)

I've just realized that on my system after a certain build my system get blocked during plugin run and i have to force reboot system.

I don't know why, maybe is the check with emby library?

For example Build 132 is ok, build 145 blocks the system. I don't know from which build i have this problem.

And i don't know how to understand the reason as logs just stop.

I'm on ubuntu.

 

I'll try to investigate

Edited by fbrassin
  • Agree 1
gillmacca01
Posted

I found the issue with the m3u not downloading, although I don't know why it's happening, or how I'm going to fix it at the moment .

I have found hidden deep in the logs of the QNAP, that it is reporting all drives as full (I have 3 drives and the fullest one still has 760gb free and I can see that in QNAP). I believe this is why I am having issues with the plugin (doesn't explain how live tv still updates though). Not sure how to fix this at the moment, but have I feeling I am going to need to do a full reset of the server. Based on I'm working away most of the time, it's probably going to take 2-3 weeks for me to get it back up and running again

mickle026
Posted

@fbrassin

Added internal Error traps and Escapes for Emby Library Checking.
 

Really the only part within this code that could possibly just silently fail is the year extraction.  Although it should never fail, I have wrapped that in an error trap, so it "should" just continue after reporting a failure.  I say "should" because its not Emby, its the c# netcore framework (Microsoft's code) that sometimes has this issue when parsing out numbers from strings.

I have no idea if that is what is happening, but its in the "check with emby library" section code that you mentioned might be the problem, so I though, lets just make sure either way if its that or not.

 

Anyway, that's all that's in this build, nothing else different from the last build.

VODtoSTRMscheduledTask.dll

  • Like 1
Apotropaic
Posted (edited)
On 04/04/2025 at 13:10, mickle026 said:

Check your custom strings for removal text box

If you downloaded the file I posted it contains S01E01 and Season etc, they will get removed, then the Season Extractor cannot extract it from the string.
Modify that file to what you need.  Take the Season, Episode , S01E01 out of it.

,Season,S01E01,Episode,Part 1,Part 2,Pt 3,Prequel,Sequel,Final 

 

@mickle026

Hi, I've cleared and recreated my library a few times now trying to get my TV Shows just right but I'm not sure if its the plugin design or something I'm not doing quite right.

If I don't use the 'Custom Strings to Remove from Titles' feature then my TV show folders and episodes have a suffix attached which makes it difficult for Emby to automatically identify the show. eg. 4K-AMZ - Fleabag.

If I remove the '4K-AMZ - ' suffix then I end up with multiple folders such as this. Which Emby again has issues with automatically identifying.

image.png.ccc06352b8af1e88590be44d73c2d3d3.png

If I add ' S01 E01' etc. to the custom removal strings list, then the folder structure is correct as they collapse into a single one, but the episodes which also match the custom removal strings such as 'S01 E01' get deleted. So I get empty TV Show folders which negates the whole thing. what makes it worse is TV Show folders that were originally named correctly without suffixes now have their episodes deleted too, which makes sense based on your warning!

I've been testing with version 146 and I have the Remove Obsolete files option ticked which I think is why the episodes are getting deleted. I'm about to run a test with it not enabled and using version 148.

Edited by jaspalgill
added more context
mickle026
Posted
1 hour ago, jaspalgill said:

@mickle026

Hi, I've cleared and recreated my library a few times now trying to get my TV Shows just right but I'm not sure if its the plugin design or something I'm not doing quite right.

If I don't use the 'Custom Strings to Remove from Titles' feature then my TV show folders and episodes have a suffix attached which makes it difficult for Emby to automatically identify the show. eg. 4K-AMZ - Fleabag.

If I remove the '4K-AMZ - ' suffix then I end up with multiple folders such as this. Which Emby again has issues with automatically identifying.

image.png.ccc06352b8af1e88590be44d73c2d3d3.png

If I add ' S01 E01' etc. to the custom removal strings list, then the folder structure is correct as they collapse into a single one, but the episodes which also match the custom removal strings such as 'S01 E01' get deleted. So I get empty TV Show folders which negates the whole thing. what makes it worse is TV Show folders that were originally named correctly without suffixes now have their episodes deleted too, which makes sense based on your warning!

I've been testing with version 146 and I have the Remove Obsolete files option ticked which I think is why the episodes are getting deleted. I'm about to run a test with it not enabled and using version 148.

I think I know what is causing this.

Do me a favour and run a test.

Put "(GB)"in the custom removal strings and see if it then behaves properly .  Exports as a single title folder.

I am thinking the detection/extraction of the show name is failing here, as it may be expecting the brackets there in that part of the title to be a year (2012) etc

 

Thanks

Apotropaic
Posted
32 minutes ago, mickle026 said:

I think I know what is causing this.

Do me a favour and run a test.

Put "(GB)"in the custom removal strings and see if it then behaves properly .  Exports as a single title folder.

I am thinking the detection/extraction of the show name is failing here, as it may be expecting the brackets there in that part of the title to be a year (2012) etc

 

Thanks

I was about to say the (GB) may just be a coincidence but I can see it has happened elsewhere with (US)&(ES) in the titles, as a test I did add (GB) and that was removed but it didn't collapse the folders as you can see below. Each folder contains a 'Season 01' folder and then an episode .strm inside there.

image.png.0a6d3fb7aa4e7e083c0028ece7b54ba1.png

However it also happens without any country codes so here are some more general cases, none of these have any country codes in the title or in the raw M3U.

image.png.75ec951bf3b8f6f98fd11df55d14cafa.png

image.png.1ac28e3d6456fb75325203624e0b2219.png

#EXTINF:-1 tvg-id="" tvg-name="4K-D+ - Ahsoka S01 E01" tvg-logo="https://image.tmdb.org/t/p/w185/i29R3K7YgLQvBFtTkMAI7zQ9bHi.jpg" group-title="DISNEY+ SERIES EU 4K 3840P",4K-D+ - Ahsoka S01 E01
http://xxx.xxx:80/series/xxxxxxxxxx/xxxxxxxxx/581085.mkv

mickle026
Posted
34 minutes ago, jaspalgill said:

I was about to say the (GB) may just be a coincidence but I can see it has happened elsewhere with (US)&(ES) in the titles, as a test I did add (GB) and that was removed but it didn't collapse the folders as you can see below. Each folder contains a 'Season 01' folder and then an episode .strm inside there.

image.png.0a6d3fb7aa4e7e083c0028ece7b54ba1.png

However it also happens without any country codes so here are some more general cases, none of these have any country codes in the title or in the raw M3U.

image.png.75ec951bf3b8f6f98fd11df55d14cafa.png

image.png.1ac28e3d6456fb75325203624e0b2219.png

#EXTINF:-1 tvg-id="" tvg-name="4K-D+ - Ahsoka S01 E01" tvg-logo="https://image.tmdb.org/t/p/w185/i29R3K7YgLQvBFtTkMAI7zQ9bHi.jpg" group-title="DISNEY+ SERIES EU 4K 3840P",4K-D+ - Ahsoka S01 E01
http://xxx.xxx:80/series/xxxxxxxxxx/xxxxxxxxx/581085.mkv

Thanks for supplying the two lines of your m3u, I can confirm a pattern match is causing the return of the whole string when trying to get the "Show Title" from the episode name. And the culprit is "4K-" 

I have altered the volume matching code very slightly, and this fixes this issue, my worry is that it might have an adverse effect on other titles that have volumes

Attached for testing

 

test1.png.f7d0049986d2d2edb28ac0d82e23fd46.png

08.Apr.2025 - 15:21:51 ====================== Item [1] ===================================
08.Apr.2025 - 15:21:51 Debugging: Sanitize InputString: 'DISNEY+ SERIES EU 4K 3840P'
08.Apr.2025 - 15:21:51 Debugging: Sanitize OutputString: 'DISNEY+ SERIES EU 4K 3840P'
08.Apr.2025 - 15:21:51 Debugging: Sanitize InputString: '4K-D+ - Ahsoka S01 E01'
08.Apr.2025 - 15:21:51 Debugging: Sanitize OutputString: '4K-D+ - Ahsoka S01 E01'
08.Apr.2025 - 15:21:51 tvgName: 4K-D+ - Ahsoka S01 E01
08.Apr.2025 - 15:21:51 groupTitle: DISNEY+ SERIES EU 4K 3840P
08.Apr.2025 - 15:21:51 channelName: 4K-D+ - Ahsoka S01 E01
08.Apr.2025 - 15:21:51 logoUrl: https://image.tmdb.org/t/p/w185/i29R3K7YgLQvBFtTkMAI7zQ9bHi.jpg
08.Apr.2025 - 15:21:51 Debugging: Pre-Include/Ignore metadata.ChannelName=
08.Apr.2025 - 15:21:51 Debugging: Pre-Include/Ignore metadata.MovieName=4K-D+ - Ahsoka S01 E01
08.Apr.2025 - 15:21:51 Checking [Include Config] Include: True because config is empty.  Next check Ignore Config.
08.Apr.2025 - 15:21:51 Debugging: Keep=True.
08.Apr.2025 - 15:21:51 Checking [Ignore Config] Ignore: False because config is empty nothing will be ignored.
08.Apr.2025 - 15:21:51 Debugging: Ignore=False.
08.Apr.2025 - 15:21:51 Include / Ignore checking passed succesfully.
08.Apr.2025 - 15:21:51 Ingnore/Include Total execution time: 0 ms
08.Apr.2025 - 15:21:51 Debugging: [ProcessContentAsync] sanitizedMovieName=4K-D+ - Ahsoka S01 E01, unsantised Name=4K-D+ - Ahsoka S01 E01
08.Apr.2025 - 15:21:51 Debugging: Inside GetShowTitle, Before Season Removal, Input=4K-D+ - Ahsoka S01 E01
08.Apr.2025 - 15:21:51 Debugging: Inside GetShowTitle, IsitAnEdgeCaseTVShow?, Input=4K-D+ - Ahsoka S01 E01
08.Apr.2025 - 15:21:51 Debugging: Inside GetShowTitle, after moviePattern regex, Input=4K-D+ - Ahsoka S01 E01
08.Apr.2025 - 15:21:51 Debugging: Inside GetShowTitle, after volumePattern regex, Input=4K-D+ - Ahsoka S01 E01
08.Apr.2025 - 15:21:51 Debugging: Inside GetShowTitle, after seasonEpisodePattern regex, Input=4K-D+ - Ahsoka
08.Apr.2025 - 15:21:51 Debugging: Inside GetShowTitle, after parentheses with year ranges regex, Input=4K-D+ - Ahsoka
08.Apr.2025 - 15:21:51 Debugging: Inside GetShowTitle, after Season Removal, Input=4K-D+ - Ahsoka
08.Apr.2025 - 15:21:51 Debugging: [ProcessContentAsync]  Pre build Path, ShowTitle=4K-D+ - Ahsoka
08.Apr.2025 - 15:21:51 Debugging: [ProcessContentAsync]  Pre build Path, GroupTitle=DISNEY+ SERIES EU 4K 3840P
08.Apr.2025 - 15:21:51 Debugging - Checking for URL strings..
08.Apr.2025 - 15:21:51 Detected TV Shows - URL contains the word '/Series/'
08.Apr.2025 - 15:21:51 Debugging: tvgType after AdjustContent=TV Shows.
08.Apr.2025 - 15:21:51 Debugging: filename1=4K-D+ - Ahsoka S01 E01.strm
08.Apr.2025 - 15:21:51 Debugging: GroupTitle1=DISNEY+ SERIES EU 4K 3840P
08.Apr.2025 - 15:21:51 Adding TV show: 4K-D+ - Ahsoka S01 E01
08.Apr.2025 - 15:21:51 Debugging: AddContentAsync Inputs: outputDirectory=D:\VODS4, tvgType=TV Shows, groupTitle=DISNEY+ SERIES EU 4K 3840P, showTitle=4K-D+ - Ahsoka, season=NULL, fileName=4K-D+ - Ahsoka S01 E01.strm, fileContents=http://xxx.xxx:80/series/xxxxxxxxxx/xxxxxxxxx/581085.mkv, imagePath=https://image.tmdb.org/t/p/w185/i29R3K7YgLQvBFtTkMAI7zQ9bHi.jpg, year=unknown_year, genres=
08.Apr.2025 - 15:21:51 groupTitle Folder omitted due to IgnoreGroupTitleFolder setting.
08.Apr.2025 - 15:21:51 Debugging: [IsitAnEdgeCaseMovie] Detection Result: (False),(4K-D+ - Ahsoka S01 E01)
08.Apr.2025 - 15:21:51 Debugging: Sanitize InputString: 'Season 01'
08.Apr.2025 - 15:21:51 Debugging: Sanitize OutputString: 'Season 01'
08.Apr.2025 - 15:21:51 sanitized season [AddContentAsync]: Season 01
08.Apr.2025 - 15:21:51 sanitized groupTitle [ Path.Combine() folderName]: 
08.Apr.2025 - 15:21:51 Constructed Folder Name [2]: D:\VODS4\TV Shows\4K-D+ - Ahsoka\Season 01
08.Apr.2025 - 15:21:51 Constructed Folder Name [2]: groupTitle=
08.Apr.2025 - 15:21:51 Constructed Folder Name [2]: showTitle=4K-D+ - Ahsoka
08.Apr.2025 - 15:21:51 Debugging AddToContentListAsync: folderName=D:\VODS4\TV Shows\4K-D+ - Ahsoka\Season 01, fileName=4K-D+ - Ahsoka S01 E01.strm, fileContents=http://xxx.xxx:80/series/xxxxxxxxxx/xxxxxxxxx/581085.mkv
08.Apr.2025 - 15:21:51 Item [0] Adding to Folder: D:\VODS4\TV Shows\4K-D+ - Ahsoka\Season 01

 

VODtoSTRMscheduledTask.dll

  • Thanks 1
fbrassin
Posted
3 hours ago, mickle026 said:

@fbrassin

Added internal Error traps and Escapes for Emby Library Checking.
 

Really the only part within this code that could possibly just silently fail is the year extraction.  Although it should never fail, I have wrapped that in an error trap, so it "should" just continue after reporting a failure.  I say "should" because its not Emby, its the c# netcore framework (Microsoft's code) that sometimes has this issue when parsing out numbers from strings.

I have no idea if that is what is happening, but its in the "check with emby library" section code that you mentioned might be the problem, so I though, lets just make sure either way if its that or not.

 

Anyway, that's all that's in this build, nothing else different from the last build.

VODtoSTRMscheduledTask.dll 847 kB · 3 downloads

Also with this version the problem is the same.

What i can see is that all is ok 'till in logs i begin to see the file embyserver.txt that is written with this:

2025-04-08 16:19:57.751 Info AuthenticationRepository: Result of setting SQLITE_DBCONFIG_DQS_DDL to 0 is 0
2025-04-08 16:19:57.751 Info AuthenticationRepository: Result of setting SQLITE_DBCONFIG_DQS_DML to 0 is 0
2025-04-08 16:19:57.751 Info AuthenticationRepository: PRAGMA foreign_keys=1
2025-04-08 16:19:57.751 Info AuthenticationRepository: PRAGMA SECURE_DELETE=0
2025-04-08 16:19:57.751 Info AuthenticationRepository: Result of setting SQLITE_DBCONFIG_DQS_DDL to 0 is 0
2025-04-08 16:19:57.751 Info AuthenticationRepository: Result of setting SQLITE_DBCONFIG_DQS_DML to 0 is 0
2025-04-08 16:20:10.635 Info SystemService-xxxxxxxxxxxxx:00000001: http/1.1 Response 500 to ‌‍‍192.168.194.82‌. Time: 16505ms. GET http://‌‍‍192.168.194.55‌:8096/emby/System/Logs/Query?IncludeItemTypes=Log&Fields=BasicSyncInfo,CanDelete,CanDownload,PrimaryImageAspectRatio,Size&StartIndex=0&Recursive=true&Limit=30&X-Emby-Client=Emby Web&X-Emby-Device-Name=Chrome Windows&X-Emby-Device-Id=xxxxxxxxxxxxxxxxx&X-Emby-Client-Version=4.9.0.43&X-Emby-Token=‌xxxxxxxxxxxxxx‌&X-Emby-Language=it
2025-04-08 16:20:17.047 Info UserService-xxxxxxxxxxx:00000003: http/1.1 Response 500 to ‌‍‍192.168.194.82‌. Time: 32102ms. GET http://‌‍‍192.168.194.55‌:8096/emby/Users/xxxxxxxxxxxxxxxxxxxx?X-Emby-Client=Emby Web&X-Emby-Device-Name=Chrome Windows&X-Emby-Device-Id=xxxxxxxxxxxxxxxx&X-Emby-Client-Version=4.9.0.43&X-Emby-Token=‌xxxxxxxxxxxxxxxxxxxxxx‌&X-Emby-Language=it
2025-04-08 16:20:17.047 Info ScheduledTaskService-xxxxxxxxxxxxxxx:00000001: http/1.1 Response 500 to ‌‍‍192.168.194.82‌. Time: 22915ms. GET http://‌‍‍192.168.194.55‌:8096/emby/ScheduledTasks?isHidden=false&X-Emby-Client=Emby Web&X-Emby-Device-Name=Chrome Windows&X-Emby-Device-Id=xxxxxxxxxxxxxxxxxxx&X-Emby-Client-Version=4.9.0.43&X-Emby-Token=‌xxxxxxxxxxxxxxxxxxxxxx‌&X-Emby-Language=it
2025-04-08 16:20:17.047 Info UserService-xxxxxxxxxxx:00000001: http/1.1 Response 500 to ‌‍‍192.168.194.82‌. Time: 22915ms. GET http://‌‍‍192.168.194.55‌:8096/emby/Users/xxxxxxxxxxxxxxx?X-Emby-Client=Emby Web&X-Emby-Device-Name=Chrome Windows&X-Emby-Device-Id=xxxxxxxxxxxxxxxxxxxx&X-Emby-Client-Version=4.9.0.43&X-Emby-Token=‌xxxxxxxxxxxxxxxx‌&X-Emby-Language=it

When only file ScheduledTask-[M3UToStrm]08.apr.2025 - 15.59.20.txt is written all is ok, i think when plugin begins to scan emby it stucks.

 

Posted

Hallo everyone,Who can explain to me how i can intall this in my Synology?

mickle026
Posted (edited)

@fbrassinTry the latest version posted, it has error traps now around emby db lookups

Also if you disable emby checks, does it still fail?

Edited by mickle026
Apotropaic
Posted
15 minutes ago, tvipoli said:

Hallo everyone,Who can explain to me how i can intall this in my Synology?

Download the latest 'VODtoSTRMscheduledTask.dll' posted here by the plug-in author mickle026. You'll need to find a way to copy this file to your synology and then transfer it to the plugins folder wherever emby is installed. Been a while since I had a synology but from memory you'll need to SSH into it using your admin or maybe your root account. If you're struggling to find the emby installation, the emby dashboard has a 'View Server Info' via the ... button which will show you the path.

Once you've copied it there you'll need to restart your emby server for it to appear under you installed plugins. 

Apotropaic
Posted (edited)
46 minutes ago, mickle026 said:

Thanks for supplying the two lines of your m3u, I can confirm a pattern match is causing the return of the whole string when trying to get the "Show Title" from the episode name. And the culprit is "4K-" 

I have altered the volume matching code very slightly, and this fixes this issue, my worry is that it might have an adverse effect on other titles that have volumes

Attached for testing

 

@mickle026

Just waiting for a media scan to complete and then I'll set it going before I leave for football tonight. Will be a while before I'll know how it scanned.

Edited by jaspalgill
fbrassin
Posted
43 minutes ago, mickle026 said:

@fbrassinTry the latest version posted, it has error traps now around emby db lookups

Also if you disable emby checks, does it still fail?

Yes, i tried with latest you posted.

Now i'll try disabling emby check

fbrassin
Posted
2 hours ago, mickle026 said:

@fbrassinTry the latest version posted, it has error traps now around emby db lookups

Also if you disable emby checks, does it still fail?

I can confirm that also with check disabled it blocks system.

I'm using latest build

mickle026
Posted
22 minutes ago, fbrassin said:

I can confirm that also with check disabled it blocks system.

I'm using latest build

So it's not the emby check causing it.  Try it exporting to a folder that is not monitored by emby.

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...