Using Google Sheets with VMIX – Part 2

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello everyone welcome back to streaming alchemy i'm john mahoney and on today's show we're going to be doing part two of our look at using google sheets with vmix and in this show we're going to be looking a bit at google apps scripting which is another scripting language we can use to integrate some automation into our productions but before we get there i want to welcome everybody to share any thoughts any feedback any questions in the comments section and we'll answer them here on the show also if anybody would like to join us here live on air uh we have a link in the show notes and down here on the screen that uh is you go here and somebody in the studio will get you on to join us here so we'd love to have you whatever we love participation so however you'd like to join us we appreciate it so let's actually uh get started talking a little bit about what we want to cover today so in last week's show we looked at how you could link a google sheet spreadsheet into vmix using basically the google api key and the data sources manager in vmix combining those two to actually populate data in a google sheet and then leverage that data inside of vmix for doing lower thirds now the limitations with that are we basically would have to work with all the data that's inside of the uh that's inside of vmix and we'd have to do that somehow through a leveraging scripting and title designer so it would be a little bit awkward so what we decided instead of taking that approach which is doable as a approach for working with that data is we said what if we worked with it on the spreadsheet side instead of on the vmix side uh and we realized that that gave us a lot of flexibility to do some interesting things so for today's show we're going to be looking at something called google apps scripting and it's basically very similar to javascript a little bit different from the visual basic scripting that vmix uses but the same general conceptual model for writing scripting based code so what we're going to do is we're going to work with a sheet that has a list of all the names of people that are going to be on panels for this event where holding for this example and within this sheet we will have a number in the first column that says what panel these guests are going to be a part of and so this whole list will basically have all the things we'll need for each participant uh to display their lower thirds so that will be the panel they're on their name their title the organization they're with and then an image of the panelist that we can all put up in a lower third and we have that for in this case we have eight panels that we have that we're going to be covering here so if we were to do this the way we did last week what you'd have in vmix would be this long sheet of uh items inside of vmix that we would then have to parse using something like gt title designer but by using code inside of google sheets what we can do is create a second sheet that has the results we want the rows that we want at any given time so in this case what we want to do is take anybody in a specific panel so if we said panel one panel two panel three we wanna take all of those rows of data and we're gonna send that over to a second sheet in this workbook so if you look at the names of our sheets it's a little bit tough to see but we have a source and a destination name so the source sheet is everybody the destination sheet these are the people that would be part of the currently active panel and so what we need to do to pick this up is much simpler in vmix we simply if i let me see if i just switch over here to the vmix side of the house if i go over to my data sources manager you'll see that i have my events panel same basic workbook that we were talking with last time and i have in the table section i have the two sheets the source sheet but i now also have the destination sheet and this model will let us by populating the destination sheet in vmix now all we need to do is look at this destination sheet to do everything with the currently active panel and that's the model we're using copy everything we want from the source sheet to the destination sheet and in vmix leverage the destination sheet to populate all our lower thirds so how do we do this one of the cool things with all of the google uh apps is that they have scripting baked into them and sort of foundational to the platform and with google sheets they actually have fairly comprehensive scripting capabilities so the way you access this is there is a little option up here under tools so if i go to the spreadsheet here under the tools option in the menu if you pull that down you'll see there's something called script editor so if you click on script editor what this will do is it will open up all the scripts that you have that are associated with this particular google project and if you remember when we set this up last week we set it up as a project and that's sort of the model that google uses if you're going to do any types of calls with that so in this project now we've added some scripting and i this is this is a full editor it does everything it does look ahead so the tool here that i'm i'm showing you by going into the google sheets scripting editor this is a comprehensive editor and you can do everything you need to here but for visibility what i'm going to do is i'm going to switch over to let me see if i can call up yeah so i'm going to use visual studio code because it's probably a little easier to see on uh on the stream and but we'll go through everything but this would all be what you'd edit over in uh these the uh scripting tool inside of your google sheets so what we want for this is we want to set up a function that takes as an argument an incoming variable what group of participants do i want to copy to the second sheet and so the function that we've set up for that is called populate group n and the argument it takes is what group what panel group panelists do i want to leverage here so it takes that in as an argument and then we're going to start to do things that you'll kind of recognize from what we've done with visual basic but there'll be some syntax changes so the first thing we're going to do is we're going to declare and define some variables so in visual basic we always do that with a dim statement and in javascript which a google script is what they call it it takes after you use something called a let statement so let is how you define a variable so let this variable equal this object and so what we're doing here now is we're creating something which is this is a pointer to my source sheet and it's doing that that's the one with all of the participants and we say go to the spreadsheet app that's the object and then we have a method called get active spreadsheet and get sheet by name and the name is source so in this case we're saying go get the active spreadsheet and get the sheet by name that is named source and assign that to the source sheet so now i have an object that contains my source sheet and we do the same with the destination let's statement instead of dim but destination sheet and we pull that second sheet in using the same mechanism so for sort of good programming practice we just make sure that we actually have values in there that it didn't come up null because we don't want to crash out of anything so in here we have the source sheet and the destination sheet of either of those are null then we just log an error and we return get out of the script so that way we're guaranteed we have something going on uh with the actual spreadsheets being there and then we're going to start to go through and access the data in this but let me take a quick break before i get there and take a quick look at everybody that's been coming in on the chat so james redmond james great to see you again thank you for joining us here we have uh randall packer randall uh randall's a uh a good friend uh from the washington dc area he does some incredible things with uh participatory media and definitely look him up he's he's got some great things going on uh so samuel nodrick samuel thank you for taking the time to come in and join us we really appreciate having you here so let's get back so now that we've set everything up and we have objects that are the two sheets we need to work with we're going to start to pull data out of them and so what we have is a method for a spreadsheet type object is a spreadsheet app object is something to get data range and what the data range says is find every cell that there's values in and sort of mark that out as the full range and that's basically a sort of a indicator of the the width and the height of the array of data we're going to deal with and then on top of that we're using a method called get values that will pull all those values out and assign it into source data so what we are doing here with in in source data is we're effectively creating an array a list of things each one of them contains an array of values so basically the rows are one dimension of our array uh and you know that would be the number of rows you have and then each value in that row the columns is the other dimension of this array and so now we've pulled all that data or referenced all that data into something called source data and so again with good programming practice we're making sure there's something there that it's not zero length zero height so we do all that error checking and we log it if there's an error but now what we've actually done is we've collected all the data and so we want to prep the sheet that we're going to be writing to the destination sheet to make sure that we have that all cleared out so that's the first thing we do is say get the destination sheet and get this full range of data up that could be in that sheet and we go from 1 1-1 to the max rows and the max columns and then we're using the method clear content and this will take everything that's in that other destination sheet and clear it out because we don't want any leftover legacy data because that could cause errors if you know a smaller set of data were put on top of a larger one those extra rows uh could still be there so we'd want to make sure we get all that cleared out and then what we're going to do here is we're going to actually start to basically take all the header values because inside vmix that will make it easier for us if we have the header values so we're just basically taking that first row with the names of everything that we have in the sheets and we're copying that in to uh the destination sheet right at the top so that first row is going to be set with all the names of the data in the different columns now all the heavy lifting is actually done in a very small little bit of code here and so what we are doing in this bit of code uh is we're taking the full source data and we're applying a filter to it so right here this source data dot filter uh is a a construct this filter is a method that allows us to say enumerate everything that's in source data and only give me items that match certain criteria found in this function that's after it so this is something that's totally different from anything we've done in visual basic before in javascript these are called arrow functions so basically what this does is it will look at each row inside the uh the source data which is the full spreadsheet it looks at each row and it applies this function to it to say do i want to capture this data or do i want to ignore this data so when i'm looking for people that are participating in a specific panel i have that first column panel one that you know two or three or four so one what we're going to do here is we'll pass in to say based on whichever panel we're working with let's get the right group all of the groups all of the rows that are have groups of data associated with that panel and that's what we do here so we take it row by row and if the row there is no row well you basically got something that's totally no you return false uh if the uh the row the column zero in that row is equal to the group that we're looking for so that was the argument we passed in in the beginning then return true and return true to the filter method says take that row and add it to this destination data that we're collecting here so that now is going through row by row and every time it finds one that is a match for the group we want it adds that to the destination data uh at the end if you know if it isn't a match and it's it's an actual row just return false because we don't want that and this is because it's enumerating it's going to go through all of the rows that are in our source data so all of the rows that are in the spreadsheet so it's it's very very compact i know this is a little bit of a dense techy piece but the power of this is really significant because it lets you do these types of crawls through data to find just the things you need and then pull them out and create a new array of data with just the elements you want it and that's what we've done here now if there is no data if basically the length of this destination data is zero again we just do a return because there's nothing else that we can do here but if there is something now so we know we have destination data what we're going to do is we're going to actually now write this destination data into the destination sheet and so the destination sheet we're basically starting at the uh second row because the first row we put the labels for the column headers for everything and we're basically going and saying starting from the first column of the second row for everything that's the length of the data uh and then this is a little like because i mentioned in the beginning that we have an array of arrays that's basically a you know a nested set of arrays so the first one the length is the length of you know how many different uh rows i have and then the second one is the the length of that second array so if i go for zero that's just the width of each row and so that gives me the number of rows and the number of columns and i set all those values to what we captured in destination data up here where we did the source data filter and that's it so in this segment of code what we've done is we found based on specifying a panel which panel do we want we found all the people that match that panel and written them over and write them over now to the destination sheet so this gives us exactly what we want vmix to be seeing panel by panel and it's it's fairly comprehensive that way but uh there's more to getting all this done so one of the other things uh now let me see if i switch back to the sheet over here one of the other things that we did for simplicity is we wanted to give whoever is working with this sheet uh an easy way to pick which group of panelists do they want to copy over so we've actually set up our own menu option in google sheets that if you click on it it'll let you go and say which set which group do i want inside the destination sheet and so if i switch over to the destination sheet here you can see if i go set active group i'll just pick a different group here it now will automatically select everybody from the first group that matches the second group and this is what we're going to take a look at next in the scripting here but before i do that i i see that we have uh suse joined us to say thank you very much it's always great to have you here so thank you for taking the time to to comment and say hi so this means in order to do what we want to do here we have to add a second function and the way this function this script will work is it's basically a function called on open and what this says is anytime i open this spreadsheet in google sheets just execute this function and in executing the function what i'm doing here is i am playing with the ui so i take my spreadsheet app which is this whole spreadsheet over here and i say get the ui use the get ui method to get it pointed to the user interface and then everything that's configurable in the user interface then has methods as well so we're creating a new menu item called set active group and then we add to each one of these uh a name that we want to associate that so group one group two group three but then we're also adding a function that we wanna call when you select that menu item so there's a little bit of a jump here so one of the things that you cannot do so normally we just went through this whole thing this whole function which said populate group n the problem is when you do things with the ui you're not able to pass an argument into the function you can't do a variable path here so what we had to do to make this work is we actually went down and created a whole bunch of other functions that basically do that argument passed for us so populate group one goes to populate group n and passes an argument of one and two does it argument two so this allowed us now to call these functions down here these little in redirection functions that then call the populate group end function we just looked at with the right group number we want but all we're doing here is we set a main menu item and then all the sub menu items under it uh and we associate the function calls with each of these so in this case we could do this with up to 10 different groups and at the end we just say the method we use is add to ui which puts this up here as the set active group over in the spreadsheet and gives us what we want and you can see we even had something like add separator in that that gave us a little bit of a spacer there you could do this to break up groups so if you had a morning session and an afternoon session you could do all types of things to keep everything separated cleanly for the way you're going to be using the sheets when they're set up the other thing to keep in mind uh while we're over here is that you don't have to do these in order so it will find everybody that has a match when it does that uh that sort of state of filter it's gonna find everywhere so if we put in panel one or panel four even though these are all the way at the bottom we added them last minute because somebody gave us some additions they wanted to make we put them in at the bottom it still finds it and it will deliver that into that destination sheet so very simple to to maintain these sheets as well so with that code let's just take a quick look of how this would operate if i'm over in vmix so so right here you can see this is the destination uh folder the destination source that we have set up for the destination sheet and this is set up over in vmix and this is in our data sources manager so i'll just sort of go into this again so you can see you go down to the hamburger menu down here go to data sources manager and from here you have all your sources this is event panels and we have the two our source panel and our destination panel so this is all the data that's coming in so if i go and i change to group four oh that's what we're on so we'll just change something else so change to group six here so now i've done that it just updated here and now the refresh cycle of about five seconds that we have for data source manager it's right down there now you see all the new values that are in here so this is exactly how we're doing it anything we want to change over uh panel to panel we can do over in the spreadsheet and that will be reflected in the destination panel over here and this means that if we put up a let's put this up as a lower third we have here i now can just pan through everybody that we have here in the lower thirds that we set up for panel six but if i go and sort of let's change this back to group seven here so group seven has three people you can see now everything is changed then we have just the three people that we had for panel seven and this is everything that we had in last week's show where you could do things for instance where i just want to pick people individually uh and you know call them up all that's there take the downstream key on and off we did the uh the display lower third if if you remember we take that off we had the ability to call up a lower third and will automatically bring itself down after about five seconds all of those things work but just by going in and changing to another group and next time i press the button uh you can see it just switched over to our next set of lower thirds so uh that's a lot that we packed into uh what is actually a a fairly brief show for what we covered but hopefully you find this interesting i mean what we're trying to do with these you know last show in this show is get you thinking about other tools that are available to introduce automation into your productions because we are big believers in automation uh not only does it improve reliability uh because you have code that's doing things as opposed to having somebody have to tap everything out but it also means that you can take on more ambitious types of productions so let me see we have a couple more questions so james is asking how are we uh triggering the uh the lower thirds that we're putting up so we actually i don't know if we have a good shot of it but we have a stream deck over here that we are doing everything with so uh let me see i'll sort of show the two sides to this so on one side we're using shortcuts for everything and the way we do the shortcuts is we have a data source uh select the row and basically that just says whichever row in that destination spreadsheet we want to have active that's the one we want to select and we're using a dynamic value to dynamic variable the dynamic value number one specifically to assign what uh person number what position number uh we want to use in that panel list and so when we do this we then have a set of buttons that are basically filling in it says in the events panel spreadsheet the destination sheet we want row zero or one row two and that's all we're doing so we populate that and we trigger these using our uh stream deck so the stream deck basically sort of give us a little bit of a pull over here so everything i'm doing over here we just we can pick whichever one of the up we have up to 10 here and when we put that up on the screen so if i go i want to do number one and i select that source you can see i just pulled up number one and number three select source uh so this gives me now the ability in the stream deck to basically say i want to get any one of the panelists from 1 to 10 i can pull those up and then using the google sheets i can pick which panel am i on and that probably is a logical way to split up how things are done but that's how we're triggering it so stream deck to uh some basic shortcuts inside of vmix and we're using a dynamic value to hold uh which uh guest in the on that panel do i want to display the lower third for so so we also have uh uh mike heffernan so mike great to have you here again so thank you very much for joining us today uh so as i say you know i think we talked a lot about vmix scripting and we're going to continue working on that but i think it's going to become important to look at the automation and scripting capabilities on a lot of other platforms especially because productions are based on a broader set of tools than a single tool like vmix i mean vmix is incredibly powerful but you may want to do things where you're controlling signage and you're controlling things like lower thirds and you're controlling all the things you want to switch in your production so having tools which are flexible across different platforms and maybe single tools that can control multiple platforms uh things like central control those types of automation tools are really powerful so this hopefully introduces another scripting tool that you can add to your toolkit and it will definitely be something we'll be covering again so uh i guess for right now we'll call this show a wrap unfortunately we will not be here next week for a show we're gonna be on the road uh traveling so that's our flying day so uh but so in two weeks though we'll be back with another show but uh we definitely welcome everyone uh here to stay for the pro show a little more casual ask any questions you want we're very happy to sort of discuss any streaming video production related topic and uh you know everybody isn't invited to uh to chime in if you have answers or uh other questions so so before we take off i just want to say again thanks to mike uh hefferman he you know enjoy the show so we appreciate that mike uh and pablo uh uh i i will probably say your name wrong problem so i'll just stop there thank you for joining us from uh from argentina that's great to have you here so okay everyone we'll see in a few uh for the after show and if not we'll see you in a couple of weeks for our next show thanks for joining all right welcome back everybody so thank you for for joining us for for the show uh when we did the first show we recognized that we were only going to be able to cover a part of what could be done with google sheets but keep in mind that what we did here with scripting is really just a part of what the google app suite lets you do so there are scripting tools for everything from emails to spreadsheets to effectively all of their applications have different scripting and that's something that definitely would be a uh a thing to start to investigate because there could be lots of capabilities you may want to add with other tools that are in the toolkit but so let's see so fiat ministry uh they said is there a way to send audio from a vmix call to a free conference call so yes there there are several ways to to handle this so inside of vmix let me go over here and if i go to audio outputs one of the things you'll see is that you can actually assign physical devices in this case we had dante set up because this is what we used in the last show but any type of audio device that we would want to send out we could send that out through a physical audio device so something like i send it to my monitor i could send it to an 8 inch audio jack to something that i want to send out to speakers so when you ask about sending audio from vmix to a conference call system there are two possible ways to do this one if you are running the free conference call system on the same system that you're running vmix there's something called virtual audio cables and what what virtual audio cables vb audio would be they just look up vb audio in google and you'll find them there what that will let you do is effectively create a virtual pipe audio pipe between two different applications inside of windows so i could assign a vb audio cable as an output device to one of my buses in vmix and then i could take and in my audio conferencing app it'll just see that as a standard windows audio device so when it asks me what's my microphone i would pick vb audio cable as an input and now you'll have that connection coming from one of the vmix channels uh you know one of the vmx buses out to your conference call uh software if you're doing it across systems uh there are things you can do with dante there are things you could use with physical cables so if it's another system you could do sort of a line out to a line in using eighth inch audio cables something like that but that will give you a uh another way to to sort of handle the both sides of an audio connection that you want to do between applications so hopefully that gets you started on an answer to that so let me see james has a question here so so yes so uh companion companion is definitely another application that lets you do a lot of very powerful things it has definitely a lot of overlap with what you would see in central control so definitely something to look into it is it is a sort of a free uh open source app and it is being enhanced all the time so there are a lot of new things that would come in it does work very well uh you know this way so the so james is saying that you could set it up so that uh you could actually have their names uh and uh sort of set it up as part of the process in the cgs so the the quick answer is yes there are anything we show i think it's important and i underscore this everything we show is more to introduce methods of doing things as opposed to a way to do a specific thing and uh your i mean james's point is very well taken here you know companion does offer this there are ways you can do it oh excuse me in excel you can do things using xml and write that to files uh so lots of different ways in here and companion is definitely something that's worth investigating uh so if you haven't looked at companion uh it it would be definitely worth a uh a download and some time to play with it it may work for you it may not but there are definitely lots of good solutions for doing what we showed today and i think more of what we wanted to cover was the concept that there are multiple places you can do scripting so you know just when you thought it was safe to go into vmix with scripting now we throw another one out there but yeah there is uh there are lots of different ways to do scripting uh in a windows based environment and then to leverage things so for instance another thing inside of google apps you can actually publish an app and when you publish an app that means it's sort of approved by google and can google can go out you could actually then control that app using http request so you could have things that would respond to http requests and that's something you could do like right from a stream deck put http request in go there and have that do things remotely so in theory we could have a set of buttons in our stream deck to say which panel do i want that could be send an http request out to google sheets if we had a published app and that could make that change for us dynamically and then we could pick panelists so you could do a lot more as you as you work with all these different tools but the companion's definitely a good one to take a look at so so otis otis uh so hello back from trenton new jersey so uh we're we're sort of uh not not the big wide open country but uh our nice little neck of the woods here we enjoy it so let's see so fiat ministry uh they're saying okay yeah i we we love sharing this and and one of the things that would actually like your question right here was was a great one these types of things help us decide what to cover in shows so uh as i said if you just if you want to send somebody send it to john at streamingalchemy.tv and if you have ideas for shows so you have questions for things uh uh you'd like to figure out how to solve it may make a show it may not but we'll we'll do everything we can you know if there's something we know to to share that with you and help but it also my general belief is that if one person is trying to figure out how to do something there are probably other people as well so most most questions end up being good topics to cover so we're we're really uh always open to these types of feedback and suggestions for things and that always starts with the question how can i and and from there a lot of good things usually follow from that so uh thank you for uh for the feedback there i definitely appreciate it so uh are there any other questions uh this was uh definitely something uh i thought was an interesting topic to cover so i'll i'll just talk about one more thing that we had uh before we uh you know to give everybody a chance to get questions in one of the other things even though we did this all with with rose you could do multiple data sets from this so it cannot just be it could be more than just panelists so if you wanted to have rows that you were using that had information for graphics for slide decks for things beyond lower thirds that you may use if you had signage outside a room you could have a name and description for the panel that's coming up you could have the next panel coming all of these things you could actually take and populate in the spreadsheet and then use scripting to pull those things out so there's a lot more you can do than just the lower third piece we use this as the example but keep that in mind as you as you think of different ways you could use the scripting insider sheets to do things so mike has a question he says wonder if there is a graphic server program that would ship out an ndi feed so yes there are i mean so there's a new newblue has a program which is ndi broadcast but the other thing to uh to keep in mind is that we are actually using vmix to ship out pre-multiplied alpha channel graphics to our tricaster system which we switched to show on so all these things you see with the lower thirds that is something coming from vmix over ndi into the tricaster as the downstream key so uh definitely multiple ways to do it new blue uh is it's very complicated so it's something where if you had things that were very sophisticated uh definitely take a look at it we have it we haven't used it as much as we thought we were going to use it initially so this is it's probably meant for shows with more complexity than we have but they have uh two two versions that actually have ndi support one with two channels of ndi and the other with 16 channels and prices that are commensurate with that so definitely something to look at but we think what vmix does itself especially because you can use vmix even the the lower end uh versions of vmix to you know they have like their basic hd perfect for being a graphic station you can use you know uh the basic title designer in that and uh work with work with lower thirds and basic stuff from that and you get vmix social and other things all wrapped into that and it does everything you may want to do for putting up graphics over ndi so so let's see so so you could so so mike is following that up he says so you could run it on a separate machine and decouple from specific switching software yes so you we run vmix on its own machine over in another system in the production studio and that just goes across the network so totally separate from the tricaster uh i would be able to pick any of those sources up uh here on this system here which is the other great thing when you're sending this out ndi it has legs so it's not a hard wire this can go to any station you want so if you wanted somebody else to to do something here with that graphic and then forward that on as ndi all that ability is baked in that's the beauty of ndi ndi is like a the world's greatest patch panel you can just plug anything in and create all sorts of chains of processing you have latency that gets introduced but definitely a very cool way to to work with video sources and it does support alpha channels so you just select pre-multiplied and when you send that out that will give you a an alpha channel based ndi feed so so mike uh yeah yeah what if you would i'm sorry if i got this uh uh i was sorry i was confusing what you were saying the the data set is running in in google so somebody in a totally different location can change the data can update uh the panels that are being used all of that stuff is totally separate vmix is pulling that data in from the cloud so there is no local data store for this so it gives you exactly so i'm sorry if i was confusing the ndi on a remote system with the data under muscle the data can definitely be on a remote system and you know any anybody that you want to have manage that so you could have a client actually go there and make sure all the spellings and everything are correct make any changes they want and then you could have somebody else either remote or local change for panel to panel so all that's sort of baked into this approach here so uh thanks james i appreciate you clarifying that because i i probably missed that so so lance uh lance thank you for joining us lance uh so he says could you use google sheets to update a scoreboard like for a game show absolutely but keep in mind that there is some latency so if you needed something which was going to be speedy uh it would probably you know you'd probably have to make sure the timing would work but if you can do something that if it updates within five seconds of when you change the data you'll probably be be fine with this you could push it but it's as we mentioned last week there is an api query limit so i believe it's a hundred queries per 100 seconds is the way they do it and so if you over query then you're going to end up getting shut down and it wouldn't it would block you for a period of time until it caught up but you can you can do this into vmix very very straightforward way for any type of any type of data you can encapsulate in a spreadsheet so very very powerful for those types of things so so yeah and and and you know uh jp uh thank you yeah this would all just flow into whatever title you want to set up in title designer and they can be dynamic and uh can have i mean because there's animation inside title designer so you can have like data change animations which can do something that is a little flashier when you want to pull like change a score or or update a uh a text box or something on the uh on the lower third the animated in gt title designer there's there's animation for that as well so you could actually do things definitely and that are are pretty cool looking for those types of applications and it's just the latency if you can work within the latency you should be golden so so mike has to drop for a meeting so mike thank you for taking the time to join us really appreciate that uh you know we know everybody takes time out of the day for this and we're definitely very grateful for that so i guess that's probably a wrap for this week uh thank you all for hanging around for the po show uh always a lot of fun uh as i said unfortunately we're not going to be able to have a show this next friday because we'll be traveling for client work but uh with the friday after we will definitely uh be back with another show and also just a keep in mind we will also be broadcasting live from the nab show in las vegas in october so we'll have shows every day from the show floor uh sunday monday and tuesday so i believe that's the 9th to the 11th of october at 3 p.m so uh that will be we probably won't be able to do a show that friday before we head out but we'll be giving you uh three shows that week so we hope to have you tune in thank you everybody uh great having you here see you for the next show take care
Info
Channel: The Streaming Alchemy Show
Views: 676
Rating: undefined out of 5
Keywords:
Id: JuAAFLOxUlA
Channel Id: undefined
Length: 48min 29sec (2909 seconds)
Published: Fri Sep 10 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.