Automate 24/7 Stream for a scheduled Playlist

bcoyle

Member
Very interesting! It actually seems easier than what I am doing. Also easier to understand and most important, it works now. I think a lot of people would be very interested in your method. Maybe you could summit some of your demo scripts including the task scheduler scripts. There are at least a half dozen people that could use it right away. Sometimes simpler is simpler. Maybe I set the bar too high when I could have saved myself a lot of time. With covid and being at home, I do have a lot of time. My program does a lot of nice things, at least so far.
 

bcoyle

Member
I think it would take quite a bit of work on your part to prepare a install package for everyone to use. Also a User manual. I know you would not personally benefit from doing the extra work but you would make a lot of people happy. You could also start a new forum thread and have a number of people working to improve your scripts and methods.
 

bcoyle

Member
It takes a lot of time to actually write a full blown scheduler. My program does things like auto fill, keeping track of how many times a file is used, Controls the sequence of videos and also controls desired overlay timing. Also can schedule out months, i.e. you have a directory of some series, you can tell it to look at the titles, looking for episode information then to create a schedule that will play at 9pm every day / also specify which days of the week to play. Since I use a web socket command method, it can be on a different computer on the network. But, yours is working now and I have a ways to go. So is there any chance you might make this available? If so, you are the guy
 

SonicEngineer

New Member
@bcoyle You're doing all the heavy lifting! I'm glad I can give you a little peak behind the Traffic Curtain. If it helps, the industry uses what is called "carts" It is a folder or a simple playlist mostly full of Commercials "Spots." We group these together by time mostly, then by message and voice ect. So as I build the hour I say, "This Segment is 12 minutes, if I add 3 minutes of Spots I'm back to the quarter hour and back to easy Time Math." So in a normal Show clock I would add the segment file then the three 1 minute Carts behind it. The Cart when it is played picks a random file and fires it off. As long as that file equals 60s it fits. So most traffic directors will set a floating play this then this playlist with a few Hard Time triggers to keep the station on schedule.

It has taken me a while to solve this puzzle. That once some one figures how to hard time OBS actions will make obsolete. However once I work out the bugs and the "got ya's" I will make a video. It's amazing what you can do with just a few hotkeys and planning.

BTW cool Station! I run a daily show on KIOF in Vegas just up the road from you.
 

bcoyle

Member
I use a concept called blocks which is maybe the same as carts. I use two template editors, one for the timeline and one for the overlays. A timeline consists of at min 4 blocks, S,P,F,E (start,program,fill,end) and 20 custom blocks (or carts). The P block only has 1 file in it - the main file for the time slot. The F block has on directory in it will fill videos etc in it. Any Block that has only one entry in it can have multiple inserts in it. So in the main program P Block, after 10 minutes, it can play another block (insert) and then resume where it left off
1610753349912.png
1610753349912.png
1610753368548.png
 

bcoyle

Member
Above is a tree printout of an individual schedule. You can see the blocks (Carts?). Also at the bottom, you can see the overlays schedule. In This example, we are running S (start), block 1, then Block P, then F -Fill and E end. In the P block you see that I have inserted another copy of block 1 into the p block and it breaks up the p block into before and after block 1. In the overlay schedule at the bottom, the g block is "global" and is time from the start of the time slot while block s and 1 start from the start of those blocks The numbers at the left are the time in seconds from the start + duration. I told it to make a program 30 minutes long , so it did - 1800 seconds = 30 minutes.
 

SonicEngineer

New Member
KIOF uses a Web based Automation system I up load to their FTP every day.

You are on the right track. You make a base for the show, because that is going to take the most time out of the hour. Then you fill in the rest. For a good reference check out Simian from BSI (BSIUSA.com) It uses "+" is play/do next "@" is at this time do this regardless. and blank is wait for the trigger. Stations use Relays and Tones to trigger the local breaks for syndication. Then there is Play at this time only after the current file is done. With those 3 operations, you can program your OBS with Scenes and Playlists. All I am doing is slaving them to Hotkeys then having AutoHotkey fire those Key Strokes off Task Scheduler to set hard times. Once My full 24h is up I'll post a link and make a video on how I programmed it. I'm not at the level you are with Any form of Codes so I have to use training wheels, but I'm still riding a bike!... lol
 

bcoyle

Member
KIOF uses a Web based Automation system I up load to their FTP every day.

You are on the right track. You make a base for the show, because that is going to take the most time out of the hour. Then you fill in the rest. For a good reference check out Simian from BSI (BSIUSA.com) It uses "+" is play/do next "@" is at this time do this regardless. and blank is wait for the trigger. Stations use Relays and Tones to trigger the local breaks for syndication. Then there is Play at this time only after the current file is done. With those 3 operations, you can program your OBS with Scenes and Playlists. All I am doing is slaving them to Hotkeys then having AutoHotkey fire those Key Strokes off Task Scheduler to set hard times. Once My full 24h is up I'll post a link and make a video on how I programmed it. I'm not at the level you are with Any form of Codes so I have to use training wheels, but I'm still riding a bike!... lol
Just because I can code, does not mean that I am not learning also LOL. I have training wheels also. Thank god for google and on line doc to help me do a task. Thousands of people have generously offered their pain to spare my pain. Please remember that I am writing using a public access channel model which is totally un-attended. Doesn't mean there aren't hooks for future capabilities but the main drive is to get it up (phase 1) and start scheduling. One of the features I want to do is to have a scene where you get a what's coming up next scene, either with just words (easy) or words and a small window in window of the next main program. You can do lots of thing if you are outside of OBS. As you say, a traffic director. I do like the term "TRAFFIC DIRECTOR". In my traffic director, it cues up the next show to run while running the current program. So I have access to a ready to run (next) scheduled program, from which I can extract all sorts of info.
 

SonicEngineer

New Member
Got ya! Traffic Director is mostly the position but I do like it in terms of the Program too. Hell it does most of the work for me might as well get the title too!

OBS has a lot of tools baked in too. If you were looking at "Up next" then maybe putting the Title/Info into a Notepad and have OBS read that. Once you save a notepad, OBS auto updates the words. I don't mind having to step outside into a 3rd system/program if I am using it with the rest. Kida like using a Christmas Tree Timer to "Automate" your Evening Lamps. I've had to use IP plugs to automate things before. It is a very Rube Goldberg way to look at it, but it works.
 

bcoyle

Member
What I am working on now is metadata. In the video file name, I'm setting it up like this "20100112 [title = dawd,genre = pets,author = dave famous] - ep 10 my dog story.mp4. In obs I have sources named OVERLAY_METADATA_genre or _title or _author. These text will show up in the obs sources and be scheduled dynamically. If you want to invent your own source metadata, you just create a source called overlay_metadata_XXXX and put a XXXX= something in the file name. Cool? For larger texts, will just use a text file. I do plan on putting tv guides and up next info in files that are updated dynamically. When writing a full blown program, you can do all sorts of custom things. Where there is a WANT, there is a way.
 

bcoyle

Member
FYI - Command line args for OBS

Launch Parameters
OBS Studio supports the following launch parameters for automation and portable use

Parameter Description
--help, -h Get list of available parameters.
--version, -v Get OBS version.*
--startstreaming Automatically start streaming.
--startrecording Automatically start recording.
--startvirtualcam Automatically start virtual camera.
--startreplaybuffer Automatically start Replay Buffer.
--collection "name" Start with given scene collection.
--profile "name" Start with given profile.
--scene "name" Start with given scene.
--studio-mode Start with Studio Mode active.
--minimize-to-tray Start minimized to system tray.
--portable, -p Use portable mode.
--multi, -m Don't warn when launching multiple instances.
--always-on-top Start in 'always on top' mode.
--verbose Make log more verbose.
--unfiltered_log Disable log filter (do not suppress repeated lines).
--disable-updater Disable built-in updater (Windows/macOS only).
--allow-opengl Allow OpenGL renderer on Windows.
* = Not available on Windows

' What I use a lot - bring up 2 instances of obs, one on port 4444 and one on 4445

These are two different short cut icons

Z:\Video\OBS\obs-studio\bin\64bit\obs64.exe --multi, -m --profile "STANDARD_YOUTUBE_PORT_4444" <-bring up port 4444
and
Z:\Video\OBS\obs-studio\bin\64bit\obs64.exe --multi, -m --profile "STANDARD_YOUTUBE_PORT_4445" <-bring up port 4445

A profile file contains the port address and scene collection name

What that means is to allow multiple obs instances without complaining and use profile "STANDARD_YOUTUBE_PORT_4445"
In that profile, it contains the port number 4445. I use "STANDARD_YOUTUBE_PORT_4444" for port 4444

Note: When the last obs running instance exits, it saves that information for the next startup. So can't depend on the default settings if not the 4444 one
The profile also contains the youtube setting and key

Anyway - you can run more than one instance of obs

1610923993672.png


You can see in the titles the different profiles
 

pashkal

New Member
Hi folks, really inspired by your discussion here :)

I've recorded a video walkthrough for the installation of OBS video scheduler I've mentioned somewhere above in the thread: https://youtu.be/nvNznDg5yh4

It is nowhere close to the real TV station management portal, but maybe it would be helpful to someone.

As we're all still locked down due to pandemic, I'll be open to suggestions on how I can make it more usable, so don't hesitate to reach out!
 

bcoyle

Member
Hi folks, really inspired by your discussion here :)

I've recorded a video walkthrough for the installation of OBS video scheduler I've mentioned somewhere above in the thread: https://youtu.be/nvNznDg5yh4

It is nowhere close to the real TV station management portal, but maybe it would be helpful to someone.

As we're all still locked down due to pandemic, I'll be open to suggestions on how I can make it more usable, so don't hesitate to reach out!
We have a couple of discord discussions going on in parallel. Interested?
 

bcoyle

Member
Viewed you video. Wow. From writing my own code, I know how much work is involved. Earlier in this thread, I discussed a lot of what I am doing. If you haven't read previous messages, you might want to. I do sort of explain what I am doing. Anyway, Welcome to this discussion and thank you for your work. I moved from the bay area (San Jose) about 5 years ago to nevada. Love it here.
 
Top