Code Monkey home page Code Monkey logo

streammaster's Introduction

StreamMaster Logo

Welcome to StreamMaster


StreamMaster, the premier video proxy streaming platform.

Sponsor this project

Please go to the wiki for further details and installation instructions. Stream Master Wiki

Features

  • Import any number of M3U and EPG files: With StreamMaster, you can easily import any number of M3U and EPG files by URL or file with auto refresh, giving you access to a vast array of streaming content.

  • Customizable logos: StreamMaster allows you to customize your logos with cached logos for quick access and tv-logos support from local directories, so you can create a unique and professional-looking streaming experience.

  • Stream analytics and statistics: With StreamMaster's powerful analytics and statistics tools, you can track your streaming performance and gain valuable insights.

  • Virtual HDHomeRuns: StreamMaster lets you create as many virtual HDHomeRuns as you like, each with its own streaming setup, so you can easily manage and organize your streaming content.

  • Integration with popular streaming tools and platforms: StreamMaster seamlessly integrates with popular streaming tools and platforms like Plex and Emby.

  • Built with the latest React and C# core: StreamMaster is built with the latest React and C# core technologies, ensuring a fast and reliable streaming experience across a multitude of operating systems and platforms.

  • Robust proxying: Using the StreamMaster built in proxy enables robust logging and reliability. Extended channels can be created to use as fail over streams. Everything is done in RAM using the latest memory handling techniques.

  • Multiple clients for the same backend connection: StreamMaster will not start a new backend stream if it is already proxing the same one. Multiple clients can watch the same channel with just one backend active stream.

  • And much more! With new features and updates being added all the time, StreamMaster is constantly evolving to meet the needs of today's streamers and content creators.

Docker Repo: Stream Master Docker IO

streammaster's People

Contributors

jbf154 avatar semantic-release-bot avatar senexcrenshaw avatar tam1m avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

streammaster's Issues

Bug: Unable to remove additional streams when "editing a stream"

Describe the Bug
I AM able to add "additional streams" in the stream editor.
I am NOT able to remove the additional stream. The edit/save button flashes for only a split second and then is grayed out/unable to save the changes.

Stream Master Info

  • Latest (pulled today)

Link to logs (required)

happy to provide privately

Feature Request: Add env variable STREAMMASTER_BASEHOSTURL to docker file

I have very limited knowledge of Docker and use Portainer to manage my docker containers. Upon pulling the latest docker file, I noticed that the only env variable that prevents SM from launching out of the box is STREAMMASTER_BASEHOSTURL, which I manually add. Is it possible to add that to the automatic env list that populates upon pulling the image?

Feature Request: Ability to filter Channels by Playlist Group in Stream Group Editor

Is your feature request related to a problem? Please describe.
While trying to build a custom Television Stream Group for Plex, its time consuming going back and forth between the Playlist editor and Stream group editor to find names of channels to add to my custom stream groups.

Describe the solution you'd like
A clear and concise description of what you want to happen.
It would be great if I could filter Channels by Playlist Group names to easier filter down the channels I want to put into the custom Stream Group

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Utilizing the PAI< but seems just as tedious

Additional context
Add any other context or screenshots about the feature request here.

[Feature Request] auto add channel numbers based on how the channels are sorted in the imported playlist

I also posted this in the suggestions channel on discord.

Would it be possible to auto add channel numbers based on how the channels are sorted in the imported playlist, like xteve does? i'm using m3u4u for m3u playlist and epg, and if a channel dosnt has a channel number it will just get imported with channel number 0.

If not, how about a way to sort the playlist streams by the playlist file channel order? then I can use the auto set channel numbers, and they still remain in the correct order.

Kind Regards.

Bug: no real time refresh on the webui

Describe the Bug
db needs to be deleted for changes/deleted channels/groups, etc from the backend for SM to update accordingly on its webui.

Stream Master Info

  • latest nightly

Link to logs (required)

  • can share only in private if needed since am afraid of leaking myu personal ip, info, etc

Bug: Streams don't play when SM is buffering

Describe the Bug
Streams don't play when SM is buffering ie. Enable Stream Buffer = StreamMaster | FFMpeg
Streams work when Buffering is disabled and SM is just forwarding the source link.

SM StreamGroup.m3u (just a single channel for testing)

#EXTM3U
#EXTINF:0 CUID="Das Erste HD" channel-id="Das Erste HD" channel-number="100" tvg-name="Das Erste HD" tvg-chno="100" tvg-ID="ARD.de" tvg-logo="http://127.0.0.1:7095/images/default.png" group-title="Main Program",Das Erste HD
http://127.0.0.1:7095/api/streamgroups/1/stream/26

source.m3u

#EXTM3U
#EXTINF:0001 tvg-id="ARD.de" tvg-chno="100" group-title="Main Program" tvg-logo="https://images.zattic.com/logos/2a2a4aee64bbd6f7f817/white/210x120.png", Das Erste HD
http://10.66.66.6:5000/api/1u1/live/ard.m3u8
#EXTINF:0001 tvg-id="ZDF.de" tvg-chno="101" group-title="Main Program" tvg-logo="https://images.zattic.com/logos/42a29350387ee5fda8fe/white/210x120.png", ZDF HD
http://10.66.66.6:5000/api/1u1/live/zdf.m3u8
#EXTINF:0001 tvg-id="WDREssen.de" tvg-chno="102" group-title="Regional Channels" tvg-logo="https://images.zattic.com/logos/7322fd8d1e4e15f3fbc5/white/210x120.png", WDR Essen HD
http://10.66.66.6:5000/api/1u1/live/wdr-essen.m3u8
...

ard.m3u8 from source.m3u

#EXTM3U
#EXT-X-VERSION:7
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="deutsch",DEFAULT=YES,AUTOSELECT=YES,LANGUAGE="deu",URI="https://1und1-hhb1000-2-hls7-live.zahs.tv/HD_ard/t_track_audio_bw_128000000_num_0_tid_2_p_10_l_de_nd_1600_mbr_8000.m3u8?z32=[REDACTEDZ long random string]"
#EXT-X-STREAM-INF:BANDWIDTH=8000000,CODECS="avc1.4d402a,mp4a.40.2",RESOLUTION=1920x1080,FRAME-RATE=50,AUDIO="audio",CLOSED-CAPTIONS=NONE
https://1und1-hhb1000-2-hls7-live.zahs.tv/HD_ard/t_track_video_bw_7800000_num_0_tid_1_nd_1600_mbr_8000.m3u8?z32=[REDACTED long random string]

The m3u8 returned from
https://1und1-hhb1000-2-hls7-live.zahs.tv/HD_ard/t_track_video_bw_7800000_num_0_tid_1_nd_1600_mbr_8000.m3u8

#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:2
#EXT-X-MEDIA-SEQUENCE:1053566514
#EXT-X-PROGRAM-DATE-TIME:2023-06-02T11:47:02.400+00:00
#EXT-X-MAP:URI="i_track_video_bw_7800000_nd_1600_num_0_tid_1_mbr_8000.mp4?z32=[REDACTED long random string]"
#EXTINF:1.600000,
f_track_video_ts_1685706422400_bw_7800000_nd_1600_d_1600_num_0_tid_1_mbr_8000.m4s?z32=[REDACTED long random string]
#EXTINF:1.600000,
f_track_video_ts_1685706424000_bw_7800000_nd_1600_d_1600_num_0_tid_1_mbr_8000.m4s?z32=[REDACTED long random string]
#EXTINF:1.600000,
f_track_video_ts_1685706425600_bw_7800000_nd_1600_d_1600_num_0_tid_1_mbr_8000.m4s?z32=[REDACTED long random string]
#EXTINF:1.600000,
f_track_video_ts_1685706427200_bw_7800000_nd_1600_d_1600_num_0_tid_1_mbr_8000.m4s?z32=[REDACTED long random string]
#EXTINF:1.600000,

Stream Master Info
0.1.0-alpha.582
docker: senexcrenshaw/streammaster:latest

Link to logs (required)
I added all the relevant files to the HERE. This includes all the m3us and the logs from SM when trying to play a channel.

.

.

Feature Request: Support for RTP streams

Is your feature request related to a problem? Please describe.
StreamMaster cannot currently accept RTP streams as input sources. Attempting to use them results in the following log error: "Error getting proxy stream for rtp://[email protected]:10000: The 'rtp' scheme is not supported."

Describe the solution you'd like
Support for RTP streams when used as source URLs.

Describe alternatives you've considered
None.

Additional context
Please let me know if log files or other information is needed or would be helpful.

Feature Request: option to disabled "channel-number=" from being in the m3u output link

Is your feature request related to a problem? Please describe.
even though all channels have a channel number of "0" in the webui, they all get numbered starting from 1 in the m3u output link which result on my emby not matching the channels using "tvg-id" is there a way to turn of this?

Describe the solution you'd like
a way to turn of channel-number= from being in the m3u output link

Describe alternatives you've considered
n/a at this moment

Additional context
i can send screenshot or video if needed

thank you in advance.

Feature Request: Add env variable STREAMMASTER_BASEHOSTURL to docker file

I have very limited knowledge of Docker and use Portainer to manage my docker containers. Upon pulling the latest docker file, I noticed that the only env variable that prevents SM from launching out of the box is STREAMMASTER_BASEHOSTURL, which I manually add. Is it possible to add that to the automatic env list that populates upon pulling the image?

Feature Request: ability to turn off icons caching

Is your feature request related to a problem? Please describe.
no

Describe the solution you'd like
the ability to turn off icons caching, specially at this stage of the project when am doing lot of playing around. reason am asking is because the process takes long, and most likely uses bw.

Describe alternatives you've considered
n/a

Additional context
n/a

Bug: cant or how to add a m3u file?

Describe the Bug
unable to add a m3u file using the webui (dont see a ok or add button)

Stream Master Info

  • latest nightly available

Link to logs (required)

  • screenshot:
    image

Feature Request: Bulk add channels to streamgroup

Describe the solution you'd like

Ability to bulk add channels to a streamgroup.

Describe alternatives you've considered

A solution could be to be able to add them directly from the playlist editor to a streamgroup.

Feature Request: XC API

I'm writing to request the addition of XC API integration. This enhancement would greatly enhance the compatibility of your software with many popular IPTV apps available on the market.

Feature Request: Ability to Build Stream Groups from one or More Playlist Groups Dynamically

Is your feature request related to a problem? Please describe.
While migrating from xteve to StreamMaster, I found it tedious to add all the channels I want into the group 1 by 1, and it also means I may not catch newer channels added to a group that I would like to be in the Stream Group. Commonly there are 1 or more entire playlist groups I would like to add into a stream group, such as all News Channels and all Sports Channels.

Describe the solution you'd like
A clear and concise description of what you want to happen.
Having the ability to add the entire playlist group easy building the Stream group, as I can bulk add, as well as select individual channels, and ensures any new channels added to the playlist group will automatically be added to my Stream Group ensuring I don't miss new channels added.

The other solution I also like is building a Sports Stream Group, where I can add all Sports Related playlist streams, and another Stream Group for all paperview Events where they dynamically appear and disappear based on events.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Using the API to programmatically perform this task

Additional context
Add any other context or screenshots about the feature request here.

Feature Request: add option to select logo from EPG

Is your feature request related to a problem? Please describe.
Selecting a logo from an EPG requires you to know the name of the logo you're looking for.

Describe the solution you'd like
Add a button in the logo drop down to auto use the logo from EPG.

logo

Bug: unable to add the m3u to emby

Describe the Bug
am getting an error when trying to add the m3u to emby. i tried with both using the public ip and the internal docker one
Stream Master Info

  • latest nightly available

Link to logs (required)

  • screenshot
    image

Feature Request: Add security (username/password)

Is your feature request related to a problem? Please describe.

Currently being able to use SM when not at home is not an option (without setting up a private vpn) since there are no security.
Reverse proxying would enable everyone to get access to the webui and use the m3u and epg urls.

Describe the solution you'd like

A way to add users and a password both for the webui but also for the m3u and epg links

The links could look something like this
http://xxx.xxx.xx.xxxx:7095/api/streamgroups/0/epg.xml?username=myusername&password=mypassword
http://xxx.xxx.xx.xxxx:7095/api/streamgroups/0/m3u?username=myusername&password=mypassword

Bug: EPG shows duplicates entries

Describe the Bug
When first load the epg selector has many duplicates

Stream Master Info

  • Version Number: Latest

Link to logs (required)
image

Bug: Build not starting on debian LXC

Describe the Bug
A clear and concise description of what the bug is.
After cloning repo and start the build_streamaster.sh the build fails.
Stream Master Info

  • Version Number
  • 0.2.10

Link to logs (required)

  • Upload any relevant logs here Gist. Do not upload attachments.
  • Creating an optimized production build...

<--- Last few GCs --->

[1619:0x755aff0] 96078 ms: Mark-sweep (reduce) 1017.5 (1041.9) -> 1016.6 (1042.1) MB, 1384.0 / 0.0 ms (average mu = 0.119, current mu = 0.008) allocation failure; scavenge might not succeed
[1619:0x755aff0] 97486 ms: Mark-sweep (reduce) 1017.7 (1042.1) -> 1016.9 (1042.4) MB, 1404.7 / 0.0 ms (average mu = 0.061, current mu = 0.002) allocation failure; scavenge might not succeed

<--- JS stacktrace --->

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
1: 0xb7a940 node::Abort() [/usr/bin/node]
2: 0xa8e823 [/usr/bin/node]
3: 0xd5c940 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/usr/bin/node]
4: 0xd5cce7 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/usr/bin/node]
5: 0xf3a3e5 [/usr/bin/node]
6: 0xf3b2e8 v8::internal::Heap::RecomputeLimits(v8::internal::GarbageCollector) [/usr/bin/node]
7: 0xf4b7f3 [/usr/bin/node]
8: 0xf4c668 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/usr/bin/node]
9: 0xf26fce v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/usr/bin/node]
10: 0xf28397 v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/usr/bin/node]
11: 0xf0956a v8::internal::Factory::NewFillerObject(int, v8::internal::AllocationAlignment, v8::internal::AllocationType, v8::internal::AllocationOrigin) [/usr/bin/node]
12: 0x12ce7af v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [/usr/bin/node]
13: 0x16fb6b9 [/usr/bin/node]
Stream Master build here "/root/src/publish/"
export ASPNETCORE_URLS="http://+:7095"
cd "/root/src/publish/"
dotnet StreamMasterAPI.dll

Also important to add in the installation guide the specs of lxc and perhaps the install of dotnet repo?
https://learn.microsoft.com/en-us/dotnet/core/install/linux-debian

Bug: Unable to add logo/icon file

Describe the Bug
A clear and concise description of what the bug is.
Unable to add logo/icon file via webui - The popup window closes as soon as the URL field is clicked on.

Via the playlist stream editor....click on the logo dropdown for a stream, then the green plus sign. Popup window opens but as soon as the URL field is clicked it closes.

Stream Master Info
0.2.11

Link to logs (required)
Happy to provide privately

Bug: Episode appears in Emby as NEW when it is a repeat.

Issue: Emby shows all episodes as "New" when many are actually repeats. See Emby-EPG-Shows-NEW-for-episode
Cause: I believe the "< new />" code should not be added to all episodes.

Difference:
See Original-EPG-XMLTV file. No < new /> or < previously-shown />
See Streammaster-EPG-XMLTV - contains both < new /> and < previously-shown />
See StationAirings to see results from TMS - shows original air date. This is not a new episode.

StationAirings.txt
Emby-EPG-Shows-NEW-for-episode
Streammaster-EPG-XMLTV
Original-EPG-XMLTV

Feature Request: EPG Name in EPG Search when setting EPG in playlist Editor

Is your feature request related to a problem? Please describe.
I have Multiple EPGs for the Same Channel, as sometimes the USA All EPG is not correct, so i will change the channel EPG to a locally mapped EPG. The issue is it seems both EPGs have the Channel named the same way. This leads to confusion on which EPG source I am selecting to map the Channel to.

Describe the solution you'd like
Since we assign a name to each EPG, could you append the name of the EPG next to the channel EPG name when searching to assign an EPG entry to a channel.
Another Alternative might be the option to select a specific EPG before searching for the channel so you know exactly what EPG source you are selecting from

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
NONE other exist at this time,

Additional context
Add any other context or screenshots about the feature request here.

Bug: .ts streams not working in ui videoplayer

Describe the Bug
The videoplayer in the webui only plays m3u8 streams and does not work with .ts streams.
When clicking on an epg item the entire player and epg disappears and a never ending loading circle shows up at the top of the screen

We discussed this in discord, just wanted to open an issue here.

Stream Master Info

  • 2.0.12

Link to logs (required)

  • Upload any relevant logs here Gist. Do not upload attachments.
    Nothing relevant is showing up in logs

Feature Request: Custom User Agent

Is your feature request related to a problem? Please describe.
Yes. Provider requires specific user agent/client for streams.

Describe the solution you'd like
Please add a textbox/field to settings where the user agent can be defined. (For reference: XTEVE has/had this)

"User Agent for HTTP requests. For every HTTP connection, this value is used for the user agent."

Describe alternatives you've considered
Unfortunately, needing to use Xteve

Thank you!

Feature Request: Ability to Change unicode for EPG

Is your feature request related to a problem? Please describe.

The way it works currently, nordic characters and properly other characters also does not seem to be supported.
Like (Æ, Ø, Å) this results in them being replaced by question marks in the EPG

Describe the solution you'd like

Be able to see characters from other alphabets than only the english.
Making the unicode UTF-8 should fix this.

Describe alternatives you've considered

Making users able to set the unicode for the epg by them self may also be a solution.

Additional context

Original EPG file:
asdfasdd

SM EPG file:
rasfdaf

Feature Request: Incorporate Schedules Direct API

Is your feature request related to a problem? Please describe.
I want an EPG option to use the Schedule Direct API.

Describe the solution you'd like
I want an editor so I can select my lineups and channels from Schedule Direct
SM will use that API to populate the EPG list

Feature Request: please include qualifiers - live and premiere

Hi,

Could you please include live and premiere qualifiers in the XML file? Emby can display this information in the guide.

Example from TMS:
"qualifiers":["CC","DD 5.1","HD 1080i","HDTV","New","Premiere","Stereo"]
"qualifiers":["HD 720p","HDTV","Live","New"]

See attached file for qualifier and the code to include in the XML file. Screen capture included from Emby.

Thank you.
XMLTV-qualifiers.txt
EmbyLive

Feature Request: ability to edit "tvg-id", etc from the webui

Is your feature request related to a problem? Please describe.
ability to edit "tvg-id",etc from the webui

Describe the solution you'd like
ability to edit "tvg-id",etc from the webui as needed

Describe alternatives you've considered
n/a

Additional context
n/a

Feature Request: ability to merge 2 or more groups in an easy fashion

Is your feature request related to a problem? Please describe.
no

Describe the solution you'd like
ability to merge 2 or more groups on a easy fashion? i am yet to use this option but i can see myself in the future doing and needing this. i also think it would be a nice addition to SM

Describe alternatives you've considered
maybe manually move channels back and fort from one group to the other as needed. but this is not efficient nor i think it possible at the moment with sm.

Additional context
n/a

Feature Request: Native code

Is your feature request related to a problem? Please describe.
Build a native distro to run natively.

Describe the solution you'd like
For non docker users this will be handy. Esp for LXC users

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.