SenexCrenshaw / xTeVe

M3U Proxy and EPG aggregator for Plex DVR and Emby Live TV
MIT License
88 stars 10 forks source link

What is next? #53

Open SenexCrenshaw opened 1 year ago

SenexCrenshaw commented 1 year ago

I am debating what the next steps here should be. I was considering:

  1. A UI rewrite with something like Vue.JS
  2. The backend probably could use some work and porting to C# is interesting as well.
  3. Name change??

I would separate the two systems (frontend/backend). I think these two will allow other features to be added more easily. Things like channel failover #47 and #38

I am fine with the way things are since it works but I am always considering new ideas that might help y'all out.

SenexCrenshaw commented 1 year ago

I decided to create a new repo. It will use c# in the backend for the server/api piece and VUE JS3 for the front end. I will keep updating this repo as bugs come in.

With the new application: Virtual hdhomeruns with individual channels. Multiple channels can be grouped together for additional viewing connections/failover EPG data can be selected per channel.

This should give lots of flexibility and a new UI will be welcomed.

aniel300 commented 1 year ago

yes please a revamp might not be a bad idea

SenexCrenshaw commented 1 year ago

things are moving along nicely. I have a decent backend written in .net core c# and the UI in react (TS). The plan is to allow uploading whatever amount of M3U/EPG files. From there you can allocate any channels from the EPG files to any amount of HD Home Runs. It will try to match channel names in M3U files for failover and what not. It should be very flexible. No idea when I can get an alpha out to play with but I am pecking away!

aniel300 commented 1 year ago

am relative new to xteve and iptv in general, but how would the channel failover work ? (it sounds like a nice thing to have since this way is just one channel showing but it will switch/failover if it goes down (all in the background)?

kjetilhp commented 1 year ago

a little late to the party, is the switch to c# and react a personal preference or based on technical issues with go? too bad about the choice of react over vue though ;) anyway, will you share the new repo before the alpha? WIll the failover work with all these ppv channels that changes names and appears dynamically on a daily basis?

xtinct101 commented 1 year ago

All this sounds amazing, can't wait to try it out.

SenexCrenshaw commented 1 year ago

Plugging away here when I have free time. I am working out how to handle multiple EPGs/Channels and the UI. I have taken this time to learn React so this is taking longer than I thought. I would very much like a beta out this year and am trying my best to make that happen.

SenexCrenshaw commented 1 year ago

am relative new to xteve and iptv in general, but how would the channel failover work ? (it sounds like a nice thing to have since this way is just one channel showing but it will switch/failover if it goes down (all in the background)?

It would need to be proxied/buffered through the server so when a backend stream fails it will use the other stream. I plan on adding in statistics for this as well so we know how the channels behave.

SenexCrenshaw commented 1 year ago

a little late to the party, is the switch to c# and react a personal preference or based on technical issues with go? too bad about the choice of react over vue though ;) anyway, will you share the new repo before the alpha? WIll the failover work with all these ppv channels that changes names and appears dynamically on a daily basis?

With out starting a serious debate... C# is a personal preference since its so easy and portable now-a-days. VS Code/Studio are solid IDEs.

I am a huge VUE fan as well. I decided to go React since a lot of people out there know React and it was another framework for me to learn. I have been happy with react/redux so far. You could re-write the UI in anything you would like. The server is c# asp.net core and the frontend can be anything.

Once I get the HDHRs worked out, the buffer mechanism and cleanup I will share.

"WIll the failover work with all these ppv channels that changes names and appears dynamically on a daily basis?" . You can create channels that will use those streams. Like you said though they are random... Maybe a feature where we can do regex matching for streams? Dunno. I would have to look into that. The bigger questions is the EPG for these.....

kjetilhp commented 1 year ago

You could re-write the UI in anything you would like. The server is c# asp.net core and the frontend can be anything.

Great! Looking forward to your first release

deku-m commented 1 year ago

Is there also a docker version coming :)?

Good luck on the rewrite of the app. Looking forward to it.

SenexCrenshaw commented 1 year ago

Another piece that I was avoiding was any kind of dB for the backend. I am using flat jsons files for storage which added a lot of time in developing. After all of that I still might just go with sqlite.

I plan to only publish docker images for releases.

I use openapi v3 as well so creating clients for the api is very easy.

I'll get back to it and send an update in a week or so.

aniel300 commented 1 year ago

ok am waiting on this

GwynethLlewelyn commented 1 year ago

C#? *covers*

Hmm, such a pity that it is your personal preference... especially because your Go fork worked so flawlessly for me! Thanks for doing that, BTW.

Moving on...

hvmzx commented 1 year ago

Would love to know how it's been going. Also, wouldn't it be nice to have a discord or some kind of community chat where we can discuss ideas if you want to totally redo xteve and basically create a new project ?

SenexCrenshaw commented 1 year ago

C#? *covers*

Hmm, such a pity that it is your personal preference... especially because your Go fork worked so flawlessly for me! Thanks for doing that, BTW.

Moving on...

I hear ya!

SenexCrenshaw commented 1 year ago

Would love to know how it's been going. Also, wouldn't it be nice to have a discord or some kind of community chat where we can discuss ideas if you want to totally redo xteve and basically create a new project ?

I like this idea. I have gotten a little backed up with life but will try to get something out soon. I am treating this first iteration as a poc and will share when things work at the basic level. It's close. Cool thing you don't even need a UI. Everything can be done with the command line or whatever client you like to code in.

SenexCrenshaw commented 1 year ago

My goal is a poc by end of the first week in January. Assume festures will be missing. My goals for the poc are:

Multiples M3U files Multiple EPG files Icon caching HDHRs will have a collection of channels and associated EPGs/programmes and tuner count Buffering in code not using external programs Statistics around channel usage, Dropped connections, Fail over, Usage...

After that we all will have to start a feature list....

GwynethLlewelyn commented 1 year ago

After that we all will have to start a feature list....

Does GitHub have polls? 🤣

lars18th commented 1 year ago

Hi @SenexCrenshaw ,

What will happens with the xTeVe when you will start with the next project? Any idea of which xTeVe fork will be the best mantained? I put this question because I want to use xTeVe only for managing my M3U playlists. So I'm not interested on the Plex/Emby support nor the HDHR emulation.

SenexCrenshaw commented 1 year ago

Not sure of the forks out there. I'll patch the buffer bug in my existing one soon.

lars18th commented 1 year ago

Not sure of the forks out there. I'll patch the buffer bug in my existing one soon.

Then I'll continue supporting your xTeVe almost for simple patches? And you'll accept PRs from other users?

gdomod commented 1 year ago

if i had a wish, i would get a failover / fallback stream and a regex mapping config on import m3u list m3u -> regex like ~das.*erste(.?HD) -> channel group "Das Erste HD" (list1:channel2, list2:channel4 etc) channel group are mapped to xmltv

hvmzx commented 1 year ago

It would be nice to create groups based on the title of the stream. My m3us do not have any groups but they have prefixes like [AR] or :US:. If based on that prefix we can create groups, it could help tons !

SenexCrenshaw commented 1 year ago

Great suggestions. I was hoping to get a POC out this week, but it is just impossible. I haven't written a line a code in weeks. You know how it is... life and what nots.

My goal is to start up again next week. In the meantime, we can discuss these features. I want the new program to handle more than an HDHR emulator.

I believe a channel is a collection of M3U streams, an icon and an EPG. The collection of streams would be used for failover, but do we ever envision a channel that switches streams after a program? Maybe even with a custom EPG....

I want other IPTV programs to use it including the front-end UI.

@lars18th I use xTeVe for the same thing and want more flexibility.

lars18th commented 1 year ago

Hi @SenexCrenshaw ,

Perfect if you wish to discuss some functionalities before starting to code a new project!

From my point of view the suggestions for a new project are:

These are all of my wishes. But I'm sure that they are complex. What is your point of view?

SenexCrenshaw commented 1 year ago

Its a good list. I was using xteve for basically the same reasons you are.

1 I agree with except the proxing part. Ill still add that

2 Its .net core which runs on those arcs, dont forget macs. Docker is what i develop for

3 yup. i use openapi V3 so you can make a TON of clients for the API

4 Something i would look into l8r.

I have actually put some time into this over the weekend. Its not very complicated to do but I took this opty to learn a few new frameworks so it has slowed me a little.

Thanks for the feedback!

lars18th commented 1 year ago

Hi @SenexCrenshaw ,

I hope you'll open soon the repo of the new project. And regarding the project name: do you have considered one? Perhaps xTeVe++?

Soldize commented 1 year ago

HI @SenexCrenshaw

I can't wait for your new repo to be released.

best reagards

hvmzx commented 1 year ago

The part where you can manage your EPG is so important, Xteve is pretty clunky and lacks a lot of features in that department.

adriel commented 1 year ago

The biggest thing for me would be to have tvg-chno support. Meaning, if the source m3u8 file has them, to auto assign them in Mapping (the "Ch. No." col), if there are no conflicts. I've spent so much time manually entering them.

hvmzx commented 1 year ago

The biggest thing for me would be to have tvg-chno support. Meaning, if the source m3u8 file has them, to auto assign them in Mapping (the "Ch. No." col), if there are no conflicts. I've spent so much time manually entering them.

This definitely and a tvg id auto assign based on a match from the channel name and a tvg id database.

You could push this to other things : Auto assign tvg id/chno and channel icon

SenexCrenshaw commented 1 year ago

Good news is I have spent a bit of time on this. Send me some examples of tvg id/chno if you can.

SenexCrenshaw commented 1 year ago

Sneak peek image

xtinct101 commented 1 year ago

This looks very promising. Will initial release include failover support?

SenexCrenshaw commented 1 year ago

This looks very promising. Will initial release include failover support?

Thats the plan

aniel300 commented 1 year ago

is there a roadmap of already implemented features and the ones coming later on ?

hvmzx commented 1 year ago

Sneak peek

image

That looks sexy as hell, looking forward to using it !

My provider gives me just a list of channels, not many have tvg id and there are no channel icons unfortunately. This is going to be good !

adriel commented 1 year ago

Good news is I have spent a bit of time on this. Send me some examples of tvg id/chno if you can.

https://i.mjh.nz/au/Sydney/raw-tv.m3u8

They don't all have a tvg-chno, but most do.

SenexCrenshaw commented 1 year ago

EPG editor. image

hvmzx commented 1 year ago

EPG editor.

image

Will xTeve have this interface also ? Or is this only for the editor?

I think it would be go a good idea to create a discord so we can easily and quickly exchange ideas and maybe test this out while give feedback

lars18th commented 1 year ago

Hi,

I think it would be go a good idea to create a discord so we can easily and quickly exchange ideas and maybe test this out while give feedback

I think it will be preferable to share a preview in github. For example, @SenexCrenshaw could create the project, and publish a draft of the binary (if hi doesn't wants to publish the source initially). Then we could test it and provide feedback/ideas in a discussion forum in github (please remember that github projects have a section, disabled by default, for discussions).

I hope that we will have soon something to discuss about it. Thank you @SenexCrenshaw !! 👍

SenexCrenshaw commented 1 year ago

I have a few items left to do: Categories - almost done, dynamic categories is part of this. Multi-stream channels- I want this to be flexible where we can do failover, load balancing... tvg-chno Channel Groups - similar to HDHR emulation Docker

After that ill post the code and we can start a discord from there. Lets hope i can find the time and get something out my EOM.

The backend is c# core with an api that works over https/ws(signalr). It is super fast and is easily added to. I am trying to make it as easy to read and work in. The API supports openapi v3 so you can create any client you want using code generators, including a cli. The frontend is react which is working really nicely with the api/ws setup.

lars18th commented 1 year ago

Hi @SenexCrenshaw ,

After that ill post the code and we can start a discord from there.

Great! However, please don't create any discord to discuss about the new project (or open it optionally only. I have no problem with this particular service). I suggest to enable the Discussions section in the github project. Search for it at: Settings, General: scroll down until Features. It's disabled by default. I love it for other projects in which I'm participating.

Regards.

hvmzx commented 1 year ago

I have a few items left to do:

Can't wait! There is a discord for Xteve already and it truly allows people to discuss more easily compared to GitHub discussions that feels less dynamic. As for the version you're working on, can't wait to test it out and give you feedback !

aniel300 commented 1 year ago

can't wait for the docker version, will this have restreaming feature ?

adriel commented 1 year ago

I have a few items left to do:

Can't wait! There is a discord for Xteve already and it truly allows people to discuss more easily compared to GitHub discussions that feels less dynamic. As for the version you're working on, can't wait to test it out and give you feedback !

Personally not a fan of Discord, I find it silos and splits the info. If you search for x error code, you may not get any hits on the GitHub project, then you have to sign up and invite yourself to the Discord and do a search there (which I find isn't as good as in GitHub).

But I have seen the xteve Discord and a fair few people seem to use it, so maybe it works better then I fear.

Just my 2c.

SenexCrenshaw commented 1 year ago

can't wait for the docker version, will this have restreaming feature ?

Do you mean a proxy in the middle like xteve Buffering. That's a yes if so

aniel300 commented 1 year ago

yes, something like that. can't wait to test it out

SenexCrenshaw commented 1 year ago

How about a name for this app? BTW this is really nothing to do with xteve anymore...

According to chatgpt it is StreamMaster

Which i love!