Automate 24/7 Stream for a scheduled Playlist

VictorM

New Member
Hey there :). Well I didn't register until today, but I've been lurking for the past 6 months.
I intend to stream music videos (all licensed by owners) to a Youtube channel, non-stop, but the playlists need to be played according to the time of day, not interrupt abruptly when a certain hour starts, and work on Mac. I also need access to the generated playlist, in order to be able to add ad-breaks. Easy-on-air looks alright but I can't switch to Windows..
I can stretch the budget to 1000$ if the solution is rock solid and meets all criteria.
Any tips are welcome!
 

bcoyle

Member
Hey there :). Well I didn't register until today, but I've been lurking for the past 6 months.
I intend to stream music videos (all licensed by owners) to a Youtube channel, non-stop, but the playlists need to be played according to the time of day, not interrupt abruptly when a certain hour starts, and work on Mac. I also need access to the generated playlist, in order to be able to add ad-breaks. Easy-on-air looks alright but I can't switch to Windows..
I can stretch the budget to 1000$ if the solution is rock solid and meets all criteria.
Any tips are welcome!
Hi Victor/Lurker (lol): There have been a few users on this thread that have had web based solutions which would work on mac/windows and of course obs works on all but not for what you want. What you want is actually a super playlist/24/7 broadcast TV front end. I think streamlabs has a 24/7 solution that probably works on mac/windows. Don't know for sure. Of course not free, but supported. The solution that i'm working on would probably work for you but is windows only. Bootcamp maybe???? Anyway, my app is not ready yet. It's getting there. My program is more a broadcast tv/public access solution. It can work as a playlist but is designed to work in 30/60/90 etc minutes program blocks with auto fill, ads, psa etc. My goal is similar to yours in that I have or will collect tons of old tv shows, whatnots and be able to generate custom programs, to take advantage of obs compositing

I guess you haven't found what you want or it is too expensive?

So it sounds like you are doing a serious 24/7 channel. May I ask details about your channel and the videos you are playing, your goals?
 

VictorM

New Member
It is intended as a 24/7 channel, we're testing a feed with Streamlabs OBS now and everything is working fine, except we can't have the in-depth playlist triggering and access required. Bootcamp is not available as we're running the whole thing on dedicated Mac Mini M1 (which in its defense, is doing an awesome job!).
 

bcoyle

Member
It is intended as a 24/7 channel, we're testing a feed with Streamlabs OBS now and everything is working fine, except we can't have the in-depth playlist triggering and access required. Bootcamp is not available as we're running the whole thing on dedicated Mac Mini M1 (which in its defense, is doing an awesome job!).
Well, sounds like my solution is not going to fit (hardware wise) . That's life I guess. Most people in this thread have gone on to their own solutions even if not perfect or optimal. I guess you are stuck with web based solutions or streamlabs (which is supported), which isn't that bad, normally because they work across hardware and on many workstations at one time. Think Windows, lol. Once a mac guy always a mac guy. Guess the same thing applies to windows people. oh, my app can work across the lan to obs running on a different computer, but requires either a common NAS drive or all content to be mirrored on each computer. I haven't looked at share drives which would allow one copy of the video content. The program can also handle multiple broadcast tv stations and multiple copies of obs. It can generate a 1000 video custom play list with station bugs, insets,fills and ads in about a minute (if the videos in the same directory). It can keep track of episodes and whats been played before.
 
Last edited:

Tim_F

New Member
I am currently porting my project for a 24/7 Weather Channel from CasparCG to OBS. Everything seems to be working but a few hiccups in playing video. What is the correct way to start/stop a video file? I am using Visual Basic .NET with obs-websocket-dotnet, video seems to start fine when update the source. But, every now and then it will not play even thought the source has been updated in OBS when I look at it. I don't see anything out of line in the log files.
 

bcoyle

Member
I am currently porting my project for a 24/7 Weather Channel from CasparCG to OBS. Everything seems to be working but a few hiccups in playing video. What is the correct way to start/stop a video file? I am using Visual Basic .NET with obs-websocket-dotnet, video seems to start fine when update the source. But, every now and then it will not play even thought the source has been updated in OBS when I look at it. I don't see anything out of line in the log files.
WELL,WELL,WELL! You are the first visual basic .net guy other than me that I have found on obs. Welcome Tim. It would be nice to talk vb with another vb person. It's gets a little lonely (LOL).

Anyway, the simple thing to check is whether the scene is set to restart-on-visible, stop on not visible. This just restarts the video when the scene becomes visible.

There is a "RestartMedia" command in the new interface that you might want to try. I've had trouble with rerunning a video that is already there and was played before or is still playing. I send the restartmedia command followed by the behavior command to restart-stop, then make the scene visible. That seems to make the video play from the start.

So, why the change from casperCG? I assume that you had a working weather 24/7 channel on that?
 

Tim_F

New Member
WELL,WELL,WELL! You are the first visual basic .net guy other than me that I have found on obs. Welcome Tim. It would be nice to talk vb with another vb person. It's gets a little lonely (LOL).

Anyway, the simple thing to check is whether the scene is set to restart-on-visible, stop on not visible. This just restarts the video when the scene becomes visible.

There is a "RestartMedia" command in the new interface that you might want to try. I've had trouble with rerunning a video that is already there and was played before or is still playing. I send the restartmedia command followed by the behavior command to restart-stop, then make the scene visible. That seems to make the video play from the start.

So, why the change from casperCG? I assume that you had a working weather 24/7 channel on that?
Yes, I still have a working channel on the air. CasparCG consumes a lot of resources, and I would like to live stream the channel on our website, so that is why I am looking at OBS.

It look like it may be a timing issue at this point. After the media starts playing I query the duration of the clip from OBS and set my duration counter using that so I can get an accurate duration before calling the next clip.

I am updating the current scene so the other elements keep playing on the ticker I have built into the scene. I am using the RestartMedia method now in the program. I have it coded to RestartMedia after I update the media source then have a slight delay before I query the duration thinking OBS could not keep up with the commands being sent.

I am going to comment out some of the other code blocks tomorrow to see if I can get a consistent playout.
 

bcoyle

Member
Yes, I still have a working channel on the air. CasparCG consumes a lot of resources, and I would like to live stream the channel on our website, so that is why I am looking at OBS.

It look like it may be a timing issue at this point. After the media starts playing I query the duration of the clip from OBS and set my duration counter using that so I can get an accurate duration before calling the next clip.

I am updating the current scene so the other elements keep playing on the ticker I have built into the scene. I am using the RestartMedia method now in the program. I have it coded to RestartMedia after I update the media source then have a slight delay before I query the duration thinking OBS could not keep up with the commands being sent.

I am going to comment out some of the other code blocks tomorrow to see if I can get a consistent playout.
I deal a lot with the same type of things. Sometimes takes a second or two for vlc to load in a new video. If I'm playing a video in a scene, then loading in the next video in the same scene starts the video as soon as vlc gets ready. If you have two different scenes, you can run scene 1, video 1, and after it starts, preload scene 2, video 2. if behavior is set to start on visible then scene 2 , video will start correctly and you can use the fades transitions to fade between scenes nicely. If you try to have scene 1 be a black(1 second duration) and you preload during that, if the black scene is too short, like 1 second, you might catch the end of the previous video(1), before vlc has a chance to run the preloaded video.

I started my project before the media controls were available, so I go to the file system directly and get the media lengths from the file headers. That way I can plan out my playlists without dealing with obs at all.

I also ping obs to make sure it is ready for a new command. In the message ID , i set a number and a command that obs doesn't like. it sends me back an error message. I just wait for that (number in message-id) to come back before proceeding.

How about some screen shots and examples of what you are trying to do with your playlists.
 
Last edited:

bcoyle

Member
Yes, I still have a working channel on the air. CasparCG consumes a lot of resources, and I would like to live stream the channel on our website, so that is why I am looking at OBS.

It look like it may be a timing issue at this point. After the media starts playing I query the duration of the clip from OBS and set my duration counter using that so I can get an accurate duration before calling the next clip.

I am updating the current scene so the other elements keep playing on the ticker I have built into the scene. I am using the RestartMedia method now in the program. I have it coded to RestartMedia after I update the media source then have a slight delay before I query the duration thinking OBS could not keep up with the commands being sent.

I am going to comment out some of the other code blocks tomorrow to see if I can get a consistent playout.
So how did it work out?
 

Tim_F

New Member
So how did it work out?
Well I have worked out most of the bugs. I have went back and forth on using VLC and the media player.

I connected one of my Decklink cards to it to see how it looks on final output. Not quite happy with the quality of the video output compared to CasparCG.

Will have to mess with the video settings to see if there is any improvement.

But at least I do have a 24/7 working channel using OBS.
 

Tim_F

New Member
Still trying to get the video loads/plays sorted out, just may be the way OBS handles it. With that said the channel seems to be working fine. Will have to let it run on my development PC for a few days then decide whether or not to move it to the live server.

Here are a few YouTube videos of what it currently looks like.
Test 003
Test 004
Test 005

The playlist for the channel are handled by a custom scheduler I created a few years ago. New playlists are generated daily so new content and AD's can be updated.
 

bcoyle

Member
Still trying to get the video loads/plays sorted out, just may be the way OBS handles it. With that said the channel seems to be working fine. Will have to let it run on my development PC for a few days then decide whether or not to move it to the live server.

Here are a few YouTube videos of what it currently looks like.
Test 003
Test 004
Test 005

The playlist for the channel are handled by a custom scheduler I created a few years ago. New playlists are generated daily so new content and AD's can be updated.
Could you change the test videos to unlisted. They are private and I can't play them. Thanks.
 
Top