I just submitted a suggestion on the StreamerBot Ideas and Suggestion site titled: When setting media source, populate variables for duration and other information when possible. -- Users shouldn't have to be installing random .dlls floating around on the net just to get the duration of the video that's playing. It would also be super nice if this folder could be a set of mp3 files, and you could pull the Artist, Year, Title, etc into variables to change on various OBS text sources. I've also been simplifying my Streamerbot animations that I was doing with multiple "Move Transition", and basically just having OBS fire the first one off, and then linking the sequences in OBS; instead of having a large list of transitions and pause timers in the OBS window.
@@ThantiK yea both of those ideas would be nice to have baked into SB, I don’t think the media recognition one is possible without this DLL though and if not thrown into the SB DLL folder it would probably have to be in the sys32 in order for a preset in SB to recognize media durations. I don’t know that for sure though. Either way, great suggestions.
First of all ty so much i am sure this work fine because i watched the live but it doesnt work really well for me. i dont know how to explain it but the media source in obs get glichy whenever i trigger the action. After the glitch thing it only play one clip. its kinda strange because when i replicated your video on how to play random clip from a folder it works good but in that video it wasnt neccessary to install the DDL so maybe that s the problem? idk
Well you are welcome, and I am sorry it is bugging out. If you didn't install the DLL that would be a problem, if you did and it isn't in the right location that would be a problem. If you did and it is in the right location but you didn't hit Find Ref at the bottom of the C# code that would be a problem. If you did all of that and hit save and compile try hitting save at the top of Streamer.Bot, then close it and reopen it and try again. If you did all of that and it is still glitching out and having issues try to monitor your CPU and RAM usage and see if there is a bottle neck somewhere. Other than all of that it might be hard for me to find what your issue could be but I would be willing to try later in the week. I do hope it gets sorted.
Hello Geefbird, thank you for all your tutorial video. With this one I managed to play my folder full of videos but how can I managed to stop it from reading with a specific command ? Because I have to much video, after a will I want to stop the reading of video by hand. Thanks in advance for your response.
Sorry for the late response but I was trying to think of a way to do this that wouldn't be too hard and all I can come up with off the top of my head would be to put a hide source visibilty sub action (making the source your video player for this) into a new action, and make the trigger a hot key then set up a button on Touch Portal or a Streamdeck or just use your keyboard to trigger it. That would stop playback immediately and then it would start again next time it is triggered.
@@geefbird Thank you for the feedback ! Unfortunately the loop source visibility comme back to true after the first clip after hiding, source is visible again. I tried to insert in the loop an « if » condition on a variable that change from « GO » to « Stop » by pressing a button on my stream deck. If variable is equal to “Stop” then break. But it’s not working at all, variable change to “Stop” but loop keeps going. I just start too understand #C by watching your video
@@XamitaBoy dang... ok well then maybe there is a way I could get that to stop using C# but I am not sure. I will look into it as soon as I have the time to do so. Sorry I can't be an immediate help.
@@geefbird Don't worry, you already did a lot with the video. Here the example I tried by modifying C# code " var player = new WindowsMediaPlayer(); Random rnd = new Random(); void shuffle(ref string[] a) { for (int i = 0; i < a.Length - 1; ++i) {
int r = rnd.Next(i, a.Length); (a[r], a[i]) = (a[i], a[r]); string testloop = CPH.GetGlobalVar("Test_loop_clip", true); if (testloop == "Stop") {break; } else {
Yes they do, and I never thought about that... but I am also fairly sure that no matter what the resolution of the video is it will fill the bounds in OBS. I can test that some time soon to be sure.
@@xOcto7x So I finally sat down and tested this and as far as on my end it fills the source in OBS completely no matter the size of the video being pulled. I tried it with 720, 1080 and 1440 video files.
So i believe that I followed everything properly, but it isn't working so I assume that I missed something. When I trigger the command, the source flicks on and off rapidly for a few seconds as though it's opening and closing all of clips at nearly the same time. After which nothing plays. Edit: I figured it out! I missed a single 's' lol
do i make a new "basePath" everytime or for any place or any other things I'd like to "pop up" like for example i'd like to have videos etc pop up for my VIPs or something like that would I just make a folder for them create a new "base Path" that leads to that folder etc.?
No, you would just put your VIP clip folder inside your base path like your regular clips folder, and then add a new variable for your VIPs folder. You would also need to know how to edit code to be able to add your VIPs folder and a statement that says if the user is a VIP it pulls from that folder instead of the other folder. Streamer.Bot won't just see someone as a VIP and do something different, nor will this code. You would have to change quite a bit of stuff to have it recognize things like mods, VIPs and subscribers. alternatively you could duplicate this code and change all of the variables in the code and set up new ones for only VIPs, but you still need to know how to edit code to do that and add in a statement that dictates that the user must be a VIP for it to trigger.
Nice this is awesome..
Thank you thank you 😁
I just submitted a suggestion on the StreamerBot Ideas and Suggestion site titled: When setting media source, populate variables for duration and other information when possible. -- Users shouldn't have to be installing random .dlls floating around on the net just to get the duration of the video that's playing. It would also be super nice if this folder could be a set of mp3 files, and you could pull the Artist, Year, Title, etc into variables to change on various OBS text sources.
I've also been simplifying my Streamerbot animations that I was doing with multiple "Move Transition", and basically just having OBS fire the first one off, and then linking the sequences in OBS; instead of having a large list of transitions and pause timers in the OBS window.
@@ThantiK yea both of those ideas would be nice to have baked into SB, I don’t think the media recognition one is possible without this DLL though and if not thrown into the SB DLL folder it would probably have to be in the sys32 in order for a preset in SB to recognize media durations.
I don’t know that for sure though. Either way, great suggestions.
First of all ty so much i am sure this work fine because i watched the live but it doesnt work really well for me. i dont know how to explain it but the media source in obs get glichy whenever i trigger the action. After the glitch thing it only play one clip. its kinda strange because when i replicated your video on how to play random clip from a folder it works good but in that video it wasnt neccessary to install the DDL so maybe that s the problem? idk
Well you are welcome, and I am sorry it is bugging out. If you didn't install the DLL that would be a problem, if you did and it isn't in the right location that would be a problem. If you did and it is in the right location but you didn't hit Find Ref at the bottom of the C# code that would be a problem. If you did all of that and hit save and compile try hitting save at the top of Streamer.Bot, then close it and reopen it and try again. If you did all of that and it is still glitching out and having issues try to monitor your CPU and RAM usage and see if there is a bottle neck somewhere. Other than all of that it might be hard for me to find what your issue could be but I would be willing to try later in the week. I do hope it gets sorted.
Hello Geefbird, thank you for all your tutorial video. With this one I managed to play my folder full of videos but how can I managed to stop it from reading with a specific command ? Because I have to much video, after a will I want to stop the reading of video by hand. Thanks in advance for your response.
Sorry for the late response but I was trying to think of a way to do this that wouldn't be too hard and all I can come up with off the top of my head would be to put a hide source visibilty sub action (making the source your video player for this) into a new action, and make the trigger a hot key then set up a button on Touch Portal or a Streamdeck or just use your keyboard to trigger it. That would stop playback immediately and then it would start again next time it is triggered.
@@geefbird Thank you for the feedback ! Unfortunately the loop source visibility comme back to true after the first clip after hiding, source is visible again.
I tried to insert in the loop an « if » condition on a variable that change from « GO » to « Stop » by pressing a button on my stream deck. If variable is equal to “Stop” then break. But it’s not working at all, variable change to “Stop” but loop keeps going. I just start too understand #C by watching your video
@@XamitaBoy dang... ok well then maybe there is a way I could get that to stop using C# but I am not sure. I will look into it as soon as I have the time to do so. Sorry I can't be an immediate help.
@@geefbird Don't worry, you already did a lot with the video. Here the example I tried by modifying C# code
" var player = new WindowsMediaPlayer();
Random rnd = new Random();
void shuffle(ref string[] a)
{
for (int i = 0; i < a.Length - 1; ++i)
{
int r = rnd.Next(i, a.Length);
(a[r], a[i]) = (a[i], a[r]);
string testloop = CPH.GetGlobalVar("Test_loop_clip", true);
if (testloop == "Stop")
{break;
}
else
{
}
}
}"
hello. Does the videos have all the same dimension? for example 1920x1080.
Yes they do, and I never thought about that... but I am also fairly sure that no matter what the resolution of the video is it will fill the bounds in OBS. I can test that some time soon to be sure.
@@geefbird that would be great. thank you Geefbird
@@xOcto7x you are most welcome
@@xOcto7x So I finally sat down and tested this and as far as on my end it fills the source in OBS completely no matter the size of the video being pulled. I tried it with 720, 1080 and 1440 video files.
@@geefbird Perfect, absolutely perfect. Thanks for your effort. 🙌
So i believe that I followed everything properly, but it isn't working so I assume that I missed something. When I trigger the command, the source flicks on and off rapidly for a few seconds as though it's opening and closing all of clips at nearly the same time. After which nothing plays.
Edit: I figured it out! I missed a single 's' lol
lol sorry, just got home! Glad you got it figured out!
do i make a new "basePath" everytime or for any place or any other things I'd like to "pop up" like for example i'd like to have videos etc pop up for my VIPs or something like that would I just make a folder for them create a new "base Path" that leads to that folder etc.?
No, you would just put your VIP clip folder inside your base path like your regular clips folder, and then add a new variable for your VIPs folder. You would also need to know how to edit code to be able to add your VIPs folder and a statement that says if the user is a VIP it pulls from that folder instead of the other folder. Streamer.Bot won't just see someone as a VIP and do something different, nor will this code. You would have to change quite a bit of stuff to have it recognize things like mods, VIPs and subscribers. alternatively you could duplicate this code and change all of the variables in the code and set up new ones for only VIPs, but you still need to know how to edit code to do that and add in a statement that dictates that the user must be a VIP for it to trigger.