Scheduling streams.
2025-09-15 · … views
Manually entering dates, titles, game names & thumbnails multiple times for every platform is a bit of an annoyance (at best). So, like any good software developer it was time to overengineer a solution with way too many bells and whistles, and set it up to be sold to others for a quick buck.
What did i want?
- One central place to define “Scheduled Streams”
- Automatically sync schedules to YouTube, Twitch and Discord
- Automatically tweet/post when I start the scheduled streams
- Automatically download the VODS for editing/archival
This… is actually quite a bit of work, but I started tapping along on my keyboard, implementing all of it.
Problem #1: I suck
For some reason Refresh tokens always like to fight with me, I always seem to lose them and I don’t wanna admit how many hours of debugging were lost to a simple error like this:
accessToken: this.#raw.accessToken,
refreshToken: this.#raw.accessToken,
God.. I’m really embarrassed about that one
Problem #2: API’s suck
For my next trick problem. We’ll start implementing the sync to YouTube… Oh… This is where the fun ends.
So, Apparently the YouTube API just… Doesn’t let you add/change some fields in the api, They’re mostly obscure and mostly unused fields like GAME NAME and THUMBNAILS.
yeah, so. That’s a problem. A huge problem actually, because now we can’t use the fancy thumbnails on our YouTube streams and we can’t categorize the stream properly???
So… Back to the drawing board. At this time I also ditched the idea of saving vods, since streaming to youTube kind of already does this for me and locally recording yields better quality anyways. (I Wanted recordings without the overlays anyways)
Uh, Where were we. Oh yeah, YouTube.
I decided to ditch the idea of defining the schedules in a custom frontend, and just use YouTube as my source of truth, it had the best editor and was the only platform where I couldn’t set fields via the API (Luckily).
Then my service just turned into “Every 2 hours, grab all YouTube videos that are ‘upcoming’ and make a schedule on Twitch and a event on Discord”
which, saves me having to also keep YouTube updated I guess!
Problem #3: The other features
I wanted to do the automatic posting and stuff, But I don’t really like automated posts to my socials, it only takes a minute to do and I can do it while my stream is on “Starting Soon”, so I decided to just, not include it for those reasons, as described above the vod feature also became useless so i never finished it, instead I decided to add: This! Yup! This blog! How the fuck does it fit in to a schedule manager? It doesn’t at all! So it’s not a schedule manager anymore but a syncronizer! 😉
Because uhh.. This Blog is actually written in Notion! Yeah! I’ve made it sync a specific database as blog posts, cause it was easy and I really like the Notion editor (and I already use it for my notes)
Conclusion? What’s next?
I Dunno, I just wanted to ramble about this project because it’s a good excuse to make a “example” blog post to test with.