I generate Youtube videos from twitch clips and the result sucks

For one year I worked on a side project called botbeepbot. I’ve been a gamer since I was young and spend too much time in the last few years watching video games on YouTube.

One year ago I found the twitch API which allows us to search clips made by viewers sorted by the number of views etc…

I had a dream: being rich by doing nothing

[Spoiler alert]It doesn’t work[/Spoiler alert] During my winter holiday 2019 (I'm French I have plenty of holidays), I spent a few days to build a bot that downloads the top 25 clips of the day from twitch, brings them together in the same video, generates a thumbnail and publishes the result on youtube. The goal is simple, reach 5k viewers by video and earn some money by watching my bot do the job.

Once my code was ready, and because I don’t want to manage a server on my own, I put the script in a docker and ran it on the Google cloud platform following these awesome medium articles. Once a day I had my video on my YouTube channel.

The results weren’t perfect but as a youtube newcomer without any experience, I was already sure to have almost 5k viewers within a few days (I'm an optimistic person).

Top clips are random

For the first videos, the results weren’t that bad. But a few days later I had to understand, the video quality in the twitch top clip isn't that good every time (in fact most of the time they are quite bad). To reach my 5k viewer I had to work a little bit more (just a few hours I guessed).

First of all, remove unexpected users (those who stream on a game and run another one), create a list of undesirable streamers, and remove copyrighted content (video with music…) to avoid problems with youtube.

At first, I banned forty people from my videos but it wasn’t enough… There were still a lot of random things happening on my youtube channel.

The number of copyrighted stuff on twitch is damn so high!

In the beginning, almost one-third of my videos got reclamation due to streamer music, to avoid that I spent some time to find a good way to recognize music on the video. The selected solution was acrcloud for two reasons: first, they have a free plan based on the number of found music, and second, they have a Python SDK.

This action removed maybe 90% of the copyrighted videos. Road to 5k viewers incoming!

I don’t understand Korean peoples, I mean I don’t speak Korean.

Once I removed the copyrighted video, I met a second problem, even if Koreans streamers are awesome players (and people I guess, I didn’t meet Koreans often), they spend a lot of time talking with their community. Most western people don’t speak Korean, most of the people on Youtube speak English so I had to filter non-English speakers to avoid useless videos in my compilation.

At first, I used YOLO to detect people on the screen and remove them if they take more than 1/5 of the screen for non-English streamers, this removes a part of the problem.

The second time I used song fingerprinting to try to detect when the streamer did an in-game action (eg: a kill in overwatch), to keep the playing clips of theses streamers. But the fingerprint doesn’t work well on tiny songs.

You get the viewers number you deserve

In the end, my youtube channel videos are quite bad (medium for the best ones) and don’t deserve more than the 4 viewers they get (me and my family I guess, maybe a friend or two). My bot will never be a YouTuber. It needs more than compiling a video, you have to create the right thumbnails, choose the right title, filter bad videos… It is not a piece of cake.

But as we can see the evolution of the result is quite good (fun at least), and for a channel, I spend 1€ a month for 30 videos which are quite cheap.

What’s next?

What a long journey for a side project, If I continue I guess I will spend more time on video qualification to improve the clip selection, and review the thumbnail generation to use a more interesting image in the back.

I’m a french