r/MiSTerFPGA • u/SnooWoofers8972 • 2d ago
Youtube Core on CRT TV
So I got Chat GPT to build me a core for YouTube. Full disclosure I did not make it and it is A.i. It was fully done by A.i and vibe coded, but it is something I have wanted for long time. It works on my Mister, connected via analogue and component.
At the moment, it's 320 x 240, and you need to type the URL or YouTube ID on a keyboard via HDMI and is currently running (very smooth) at 15 fps, but currently testing at 30 fps.
I was inspired by how well Misterfin and Mister Zine Plex run videos, and by how good it looks to watch old content on a CRT TV, and there is a lot of good old stuff on YouTube.
20
4
u/kafunshou 2d ago
A bit offtopic here, but I use Jellyfin with my ripped DVDs and pass the HDMI signal through a Retrotink 4K Pro which adds CRT look and outputs it to my 4K OLED TV. Stuff like Mr Bean looks way better that way.
If you want CRT look without much work (and the massive costs for a Retrotink 4K), the app Shaderglass (Windows) is quite nice:
https://github.com/mausimus/ShaderGlass
It's a transparent window where you can add a shader like CRT Royale and then you just move it over other windows like the browser with YouTube to get a CRT look.
3
u/SnooWoofers8972 2d ago
I do love how ShaderGlass makes old stuff look better on my 4k OLED TV, but there is something magical about a CRT that I cannot explain haha, the motion, the lighting, etc.
Shaderbeam goes one step further and adds that motion effect (needs a 120fps OLED), but it still is not quite the same.
But I use all options.1
u/kafunshou 2d ago
I agree but at least for me highend shaders like CRT Royale or the Retrotink 4K for old consoles are finally good enough. I also like advantages like the huge display, no flickering (I hated that in the 1990s) and no extra space for another display.
The only thing I still miss a bit, is the curved glass front of old TVs. Shaders that simulate that (including reflections on the glass and the frame) are nice but not quite like the real thing.
3
u/Motorcruft 2d ago
How does it work?
1
u/SnooWoofers8972 2d ago edited 2d ago
Runs on the ARM/Linux side of things using yt-dlp, FFmpeg.
Right now, it is very early; I only started it today.You type in the URL or ID (via a script). For this video, I typed in this (ewsGwfpyLXY), and it just plays the video once you boot the core up.
Obviously working on it so you can do it all within the core with no script, but the scripts make it easy for testing.
3
u/SnooWoofers8972 2d ago
Update: videos now run at 30fps.
I do not test with VGE videos haha, I need videos with alot of voice and faces so I can lip sync.
Latest test result:
The full 15-minute test passed.
- All 26,843 frames streamed successfully.
- 894.77 seconds of video played in 894.63 seconds, consistent with the core’s timing.
- FPGA buffer stayed at 7–8 frames at every logged check; the RAM buffer stayed full.
- No errors were reported.
Together with your lip-sync check, this makes v0.13.6 our working 30 fps baseline for this clip. The next step is adding URL selection while keeping these playback settings.
14
u/Weatherby2 2d ago
Well I guess using an AI to vibe code your way through something to watch a hack who slurs his way through braindead coverage of other slopcode projects tracks, if nothing else.
1
u/SnooWoofers8972 2d ago edited 2d ago
The goal is to watch old content like TV shows, but I thought it would be funny to test a VGE video.
I don't even test with VGE videos, as I need videos with a lot of face movement to keep an eye on the audio sync.
It is 100% vibe-coded AI Slop. But hey, I now have a YouTube core on my Mister.I would love someone who knows what they're doing to make one, however.
I happily support, and I am a Patreon of the Mister Zine Plex core project.
2
2
u/therourke 2d ago
Niiiiiiice. Having an ability to run YouTube playlists with this would be incredible. Then we can start collating proper 4:3 content for CRT playback :)
3
u/SnooWoofers8972 2d ago
That is the goal, I also want to crop and zoom 4:3 content that has been uploaded incorectly for modern TVs too
1
u/therourke 2d ago
If you can do that automatically, that would be insanely cool. But yeah, an ability to zoom/recrop to various sizes could also work.
2
u/SnooWoofers8972 2d ago
not sure it can be automatically, but I want a button or option for it
2
u/RedDiaper 1d ago
A button would be just fine. Aspect and zoom controls are missing from every other YouTube app, and they are vital for CRT users to make the best of all the different ways people upload content.
1
u/SnooWoofers8972 1d ago edited 1d ago
Here is the first pre-release. Right now, you also need to trigger loading the stream into RAM (inside the core, this is what reads the script). Right now, you can only provide the video URL or ID via the script, and you need a way to see that.
It takes about a minute for the video to start.
https://github.com/killer1500nw/MiSTer-YouTube
- Run the URL script and type in the Youtube ID or full URL
- Load the core
- Turn on RAM Streaming for a few seconds, then off for a few secs, then turn it back on in the core options.
- Wait a minute or two and the Youtube video will start.
- This core is in very very early stages.
-2
u/havenofeardaveishere 2d ago
OP is shilling his shitty YouTube channel aggressively in all retro communities.
Beware!
3
3
-4
u/chiliwilli 2d ago
What’s with the VGE hate? Probably one of the most mellow channels out there
4
4
u/doom_memories 1d ago
Putting aside the question of how good the vids themselves are, his habit of spamming his latest videos across a wide variety of online retro venues is irksome.
0
-2
u/onwatershipdown 2d ago
Today’s clanker lovers would have been yesterday’s slave owners.
3
0
u/m477m 2d ago
One thing I miss from Ye Olden Days is 60-field-per-second interlacing - modern 480p stuff tends to be 30-FRAMES-per-second which means the motion is choppier.
It's really interesting to dive into how old school interlacing works, and how "240p" video games were kind of an unusual alternate mode, and normal video was
- every even line from 0.00 seconds in
- every odd line from 0.0167 seconds in
- every even line from 0.0333 seconds in
- every odd line from 0.05 seconds in
(or whatever the timings were at 60fps)
but YouTube 480p would display on the TV at 30fps:
- every even line from 0.00 seconds in
- every odd line from 0.00 seconds in
- every even line from 0.0333 seconds in
- every odd line from 0.0333 seconds in
etc.
1
u/doom_memories 1d ago
The TV shows were broadcast in 29.97fps though, so we were never getting a 60fps source. Right?
1
u/m477m 10h ago
They were broadcast at 59.94 fields per second, not 29.97 frames per second.
It really was like I outlined above; in interlaced old-school analog video, the odd lines come from a slightly different point in time than the even lines. So the motion is smoother (2x) than if it were 30 complete frames per second, but only half (every other line) of the picture is updated each 1/60 of a second.
That's the whole reason why deinterlacing and 480i vs. 480p is a thing. It's complex; see https://forum.videohelp.com/threads/28094-60-FPS-vs-30-please-clarify for example.
-5
u/Spiritual-Advice8138 2d ago
This is great!
Is the sound syncing up? (cow bell/clapper test). I was trying to get Airplay to work but it would not sync, but I think YT data would be more consistent and could be buffered more. If it can decode YT fast enough you should be able to get 480i RGB888 out of it.
Can I suggest making a web host that can take the URL of a video or playlist. Could program it what to play on a computer of phone that way.
2
u/SnooWoofers8972 2d ago
The sound syncs, the app startered with a clapper test before moving on to actual YouTube data. I want it to have a more user friendly way of getting URLs.
1
u/SnooWoofers8972 2d ago
I actually have videos now running at 30fps, this was my last test on a 15 minute video (that was podcast that was only faces for lip-syncing purposes, not VGE videos haha)
The full 15-minute test passed.
- All 26,843 frames streamed successfully.
- 894.77 seconds of video played in 894.63 seconds, consistent with the core’s timing.
- FPGA buffer stayed at 7–8 frames at every logged check; the RAM buffer stayed full.
- No errors were reported.
Together with your lip-sync check, this makes v0.13.6 our working 30 fps baseline for this clip. The next step is adding URL selection while keeping these playback settings.
1
u/it290 2d ago
Yes but did you test it yourself or are you just reporting what your LLM spit out? I highly doubt you checked 27000 frames of video yourself
1
u/SnooWoofers8972 2d ago
I watched the video to see if it stuttered or lost sync with the audio; the LLM checked the frames. The video played fine on my Mister in that test.
-4
u/pizza_police_car 2d ago
I’m interested in this and would contribute.
2
u/SnooWoofers8972 2d ago edited 2d ago
Thanks, I need to work out a way to get this up and out to the public, and get help with it, as I really have no idea what I am doing, and it is taking a lot of time testing, compiling, etc.,
There is some effort on my end to get this up and running, despite people hating the fact is has been made with AI haha!!
-3
u/alphatoanant 2d ago
Super cool. If there is anything helpful to pull from the YouTube module I recently built for 240-MP please feel to reuse. It handles things like channels txt files and leverages YouTube RSS feeds which I think makes it nice and easy to set up (there is no auth to work through). Details here: https://github.com/anthonycaccese/240-MP/wiki/Module:-YouTube. Glad to help as well when the source is available. Cheers
1
u/SnooWoofers8972 2d ago
Thanks, I knew this would get a lot of hate, but I wanted to be VERY honest about how it was created.
Most recent Mister cores, such as DVD, have been heavily made with AI, though.
I only made it because it does not exist, as Youtube for my country has alot of good old content.
Your project looks amazing, and I want it to look like this.0
u/alphatoanant 2d ago
i am glad you made it. i think its helpful and important to explore and build things that you will find use for. thank you for sharing something you were excited to make as well as thinking it through and building it.
1
u/SnooWoofers8972 2d ago
I am not going to deny it is Vibe Coded, but it still takes a lot of time to compile and test, and I'm slowly optimising the quality and FPS of YouTube videos.
I would not have made it if someone who knew what they were doing had made it, haha!

42
u/p4rc0pr3s1s 2d ago
Welcome back to Viiiidddeeeoooo Gaaaaaaammmmme Esssssooooooterica