Automate 24/7 Stream for a scheduled Playlist

bcoyle

Member
Question: If you have some video clips/files that you want to automatically import, there is information that you would need. Such as series name, episode, name of clips etc. Is there a naming convention that everyone uses that would convey this info?
 

PingWin

New Member
Hi Bill, I have included the prototype in the post as a file. The prototype only works correctly in Microsoft Edge, since javascript cannot access local data in Chrome and Firefox.

I checked my approach to OBS and the m3u8 playlist.
The m3u8 specification defines tags for the start and end positions. For example:
#EXTVLCOPT: start-time = 50
#EXTVLCOPT: stop-time = 98

OBS also understands this playlist if the VLC plugin is used. In that case, OBS actually starts at the point as specified in m3u8. So you could also put inserts / advertising or whatever between the videos.
- An example playlist is attached in the package. So you can see what I mean.

To have a functioning, unmanned mini-home 24/7 TV station, all you currently need is OBS as streamer, VLC as playout software and playlist planner and my web application to calculate the end time of the playlist.

First, a playlist editor would be nice. As a playler you can then use OBS or VLC.
The user can decide for himself. The following functions should be included:
- Drag & Drop video files,
- Display of the running time of the video files
- Possibility to determine the start and end time.
(Example: run time 90, start 15, end 65)


My vision would be a software that have:
- The playlist editor
- A player based on libVLC
- Output via NDI
- The possibility to change the playlist in real time like in VLC
- A log with the time when the playout was started
- A planner that shows the total time of the playlist and when the last video ends. So you can plan your playout combine it with a live event.
- Automatic resynchronization of the playout based on a log. The playout will continue where it should be now.

I still have to think about how to do the resynchronization.
In any case, the software must save the start time in ms since 01.01.1970.
 

Attachments

  • Project-OBS24.zip
    21.8 KB · Views: 138

bcoyle

Member
Hi Denys
Hmm. Interesting. Our concepts are totally different, but each fill a niche. You might think about your player talking to vlc or obs or vlc on obs but commanding it to do one operation at a time. I.e when its time to start a new video, send a command to do that. It does not have to be full playlist. it might allow more control and you can do the tricky stuff in real time. OBS has a new NDI in and Out plugin which would fit one of your requirements. you might want to save you command list in a date time format so that instead of running for 1.5 minutes , it actually starts at 9:01 Pm and is 1.5 minutes long. That way you could look at the time (time of day function), see where you are in the time list, figure out the current file that should be playing and then send the command to play it starting at some in-point using a m3u8 command that makes the time come out correctly. ??? It took me a while to figure out how to get the file duration and easy enough to load duration for each clip in your list to get the total time. I've been using datagrid but have switched to list view, seems easier. Each has it's quirks. Your example looks like a listview control. I use JSON files a lot to store information as well as it is the main transport structure for talking to obs. Another thought: If you chose to go thru vlc instead of obs, you will miss out on the opportunity to, in addition to having it play videos, to having triggers like turn on/off logos in the playlist. You could have a list of videos, but also a different item in your list to trigger events. Just a thought. Gotta go, its 11pm here. Bye for now
 

loatoday

New Member
Not sure if anyone is still interested in a 24/7 video playlist manager type plugin but I just finished a quick prototype. I will continue adding features and enhancements so let me know and I'll get make the plugin public.

I am very interested. Is this still under development, or is it publicly available?
 

bcoyle

Member
I am very interested. Is this still under development, or is it publicly available?
Haven't heard from him in a long time. Anyway, what is your story. Why are you interested. We talk about the why on this channel also, not just the how. So Spill
 

SonicEngineer

New Member
Any word on this Program/Plugin?

I've found a few ways to achieve what we are all looking for but nothing in one program. Essentially I am using AutoHotKey, Task Scheduler and Touch Portal. Like most things in automation you have to know what you want to do first. Second is execution. I'm super new to programming, but have spent a decade in broadcasting so I'm familiar with traditional broadcast software.

My workflow goes by the hour. I build the Scenes as the hour trying to time it out as well as I can by building the VLC playlist for each 60 minutes. Each playlist is linked to a Hotkey in OBS. I write a simple program with AutoHotKey to virtually press the corresponding OBS hotkey. Then Task Scheduler fires off the program. When we are live for the hour I turn off the Scheduler for that time or switch to an NDI Scene fed from another studio or RTMP. I use Touch Portal for Scene flow and back up if Task doesn't fire off.

That's my way to skin this cat. And thank you @bcoyle for keeping this thread together.
 

bcoyle

Member
Any word on this Program/Plugin?

I've found a few ways to achieve what we are all looking for but nothing in one program. Essentially I am using AutoHotKey, Task Scheduler and Touch Portal. Like most things in automation you have to know what you want to do first. Second is execution. I'm super new to programming, but have spent a decade in broadcasting so I'm familiar with traditional broadcast software.

My workflow goes by the hour. I build the Scenes as the hour trying to time it out as well as I can by building the VLC playlist for each 60 minutes. Each playlist is linked to a Hotkey in OBS. I write a simple program with AutoHotKey to virtually press the corresponding OBS hotkey. Then Task Scheduler fires off the program. When we are live for the hour I turn off the Scheduler for that time or switch to an NDI Scene fed from another studio or RTMP. I use Touch Portal for Scene flow and back up if Task doesn't fire off.

That's my way to skin this cat. And thank you @bcoyle for keeping this thread together.
You're very welcome. I'm trying very hard to keep people interested. I've been over on the discord obs community server, but they don't seem very interested. Also no known official effort to do a 24/7 station. So if I understand this correctly, you create a series of 1 hour scripts to run vlc. 24 scripts for 24 hours. You would have obliviously more than 24 scripts, so over a period of time you might have hundreds that you periodically change. It sounds like it works, but is a lot of work, but free. You can go back over this forum to see what I up to. You might think of what I am doing as a automatic script generator and a program that follows the scripts and talks to OBS to tell it what to do via a web socket.
 

bcoyle

Member
So what are you trying to do? i.e. what are you going to broadcast. It takes a lot of material to keep a 24/7 channel fresh
 

SonicEngineer

New Member
So what are you trying to do? i.e. what are you going to broadcast. It takes a lot of material to keep a 24/7 channel fresh

I currently run a few shows on our Twitch. www.AAMP.tv Nothing 24 hours yet.

building the hours by hand is a common Broadcasting Traffic Practice. That is usually why you have a FT Traffic Director. But the work flow is pretty similar. There are a few practices that really help. First is Hard Timing your segments. Coming up with a scheduled break times makes it easy for Production, Replays, and Terrestrial Syndication, because the station can put in their own spots in a barter deal. That means all my breaks and all my content are essentially the same time every time. It is more about building each show as an hour. once you have a few done you can use task scheduler to fire off your program. if you have 3 hours you just set different times to start each hour. Frankly for a 24 hour station you really only need 6 hours too keep it "fresh" You just play those same 6 hours 4 times and replace them as the production comes in. You can even Overwrite the files so you don't have to rebuild your clocks every day.

Like I'm sure you know the less money you spend on the system the more money you have to spend on experience. Operation and Equipment go hand in hand. Sure I can build a house with just a hammer. It will take me longer and I may need to use some unconventional methods but I can do it. lol.

Where most broadcasters get in trouble is they don't know what their station should look like, so it is hard to build the automation. If I know my shows have four twelve minute segments I know I can put three minute breaks in between. Or I ask some of my shows to send in a full 60 minute file. That is how most of my shows are terrestrially syndicated; I just send what we call a "long" file. I'm building this system to integrate, 2 Studios, 2 Radio stations, 2 RF Towers, 1 primary Roku channel, and like 30 some High School Sports Teams. For the Radio Station I am bighting the bullet and buying a radio automation from BSI that I have used before (we have to stay FCC compliant. That means ASCAP/BMI Affidavits and Top of the hour IDs and all that). It also has com-ports and relay closures (with a Broadcast Tools Switcher) I can use elsewhere in that system. But the TV Stations are all Digital so there is a bit more wiggle room. What I plan on doing is pulling the NDI from the studios when we want to go live, and then the pre-recorded when we don't. Audio goes to the Radio, Video goes to the Stream. With VoiceMeeter I'll be able to pull the Radio Feed into the Video Station too. I'm really only needing the AutoHotKey to fire off the trigger on time so I don't have to have a Board monkey press it every hour for us. I was even thinking about a mechanical solution, like a drinking bird. lol. Again many ways to skin this cat. I'm just hoping I don't have to hire some one to sit around a push 1 button for me every 15 to 60 minutes. Pretty cushy job, but an unnecessary fire watch...
 

SonicEngineer

New Member
To simplify my workflow: I build a VLC playlist in OBS for each hour. Then have that Scene/Playlist set as a hotkey. Then Task Scheduler and AutoHotKey fires off the Hotkey. (Example Script: Send F9) Super simple! The Scene switches at the top of the hour and the next playlist fires off. A bit of Time Math involved but it accomplishes the task.

With that Task Scheduler becomes my Time manager. I just have to build a full hour then tell OBS what hour to play. With Voicemeeter Macros you can Hotkey the Audio Routing too.
 

SonicEngineer

New Member
It sounds like it works, but is a lot of work, but free. You can go back over this forum to see what I up to. You might think of what I am doing as a automatic script generator and a program that follows the scripts and talks to OBS to tell it what to do via a web socket.

What you are looking at building is a Traffic Program. Like Natural Grid or Natural Log https://nat-soft.com/ This builds the script and the schedule then that log is sent to the automation system. (I can only speak for Radio, I've spent the last 10 years with it) Then the Automation Program executes. I know that RadioDJ and some of the others you have to build the show clock in the actual system.

I'd be happy with an OBS plugin that just switched the scene or turned on and off sources based on a clock. The right Traffic Director could work wonders with just that. Once built you are looking at 2 hours a week tops to fill your station with new content and spots.
 
Top