After talking with some of the people I used to compete in with Vex a few days ago, I remembered the channel “Cut to the Bot Videos”, which cut up the vods for the Vex Worlds live streams and uploaded singular, labeled matches so teams could go back and find them really easily.
I figured that it would not be difficult to make a script to do the same, a day later and here we are
I’m slowly letting it run bit by bit when I get time, but you can find all the matches it’s done so far on a new channel, Cut to the Bot Vods. Once I’ve gone through all of tipping points worlds I’ll release the code and hopefully someone will want to go through the process of running it for the upcoming world championship.
But in case anyone is interested in how it works now, I’ll give a brief explanation:
Using the m3u8 stream from the livestreaming service Vex uses, called Boxcast, I download the vods for worlds
Using an Object Character Recognition (OCR) model it pulls the division and qualification number from the video stream. This is also what determines the start and end of the matches.
Using that information it pulls the match result information and teams from RobotEvents
It then splices and saves the videos with the formatted names to be uploaded to Youtube.
P.S. Vex worlds contains a lot of copyrighted music, so if there are missing matches that is why.
It’s almost all automated so it wouldn’t be hard mute the audio. Some people though, including myself, enjoy hearing the commentators. For now it is not too big of an issue, only 4 out of ~150 matches have blocked and copyrighted music so I can just manually go in and replace the audio for those. If it does become too big of an issue I’ll consider muting all the matches though.
Yes! I had to stop it for a bit to make some improvements to the code and because I’ve been really busy this week but I’ll get it back up soon. I honestly did not have an order in mind, I just clicked spirit at random and that’s why its the first.
If you have any suggestions for the order, let me know! I have no idea where the exciting matches happened haha
considering the fact that i was in engineering division, i might have a bit of bias when i say you should do engineering next, but the research division also had some pretty cool matches in it, so id say start with those lol.
For those curious about how this works, I finally got around to cleaning up the code and documenting how it actually functions. All the code, and a detailed explanation of how it functions in the README can be found here:
Just read the above. What about uploading one version with audio and one without for each match, so that even if a match is taken down, you can still use the muted one to watch the match. If it isn’t, you could watch the one with audio. Should not be too hard to add in.
I wouldn’t take your time to mess with the audio. Youtube will let you know if there are any issues and on our end, I think we can just blame Youtube and not worry about bugging the person doing all this work. Also, when there is a copyright issue, Youtube doesn’t always remove the audio. Depending on the artist, they may just run an ad instead of taking off the audio.
Also, RECF can just put together a good copyright-free playlist for use at WORLDS and at our local events. We currently pay $5 per team on robotevents.com for fees to RECF, and I’d be happy to throw in an extra dollar or two if we could get some more collective resources. I’ve used playlists that claim to be copyright free and then I got copyright strikes… So I’ve gone back to no music.
I used to do this same thing for my tournaments but YouTube changed how many videos you can upload per day. My tournaments have a couple of hundred matches max, but it took 2-3 days to upload the videos. I now just put links in the description for the matches, so they can just click on a match and the video will queue to 5 seconds before that match in the original live stream.