Ever since Apple introduced their video wallpapers I wanted to be able to put custom videos there. I decided to reverse engineer and see what I can do.
I built Phosphene to sell it, but the existing competitors were polished enough that the time it would have taken to catch up wasn't going to pay off. So I'm open-sourcing it.
WallpaperExtensionKit.framework is what powers macOS wallpapers. It controls what’s shows in the Settings app. It took a lot of trial and error to replicate the behavior, but the result is that your custom wallpapers appear alongside everything else. I wanted to have an “add” button there too, but I couldn’t find a way to do so, so there’s a companion app that will put your video where it needs to be.
Unlike Apple's Aerials, the video keeps playing on the desktop (not just the lock screen). The renderer drives AVSampleBufferDisplayLayer directly with PTS-offset gapless looping, and pauses or downshifts based on thermal state, battery level, brightness, and window occlusion.
It’s free and works well.
Very nice, thank you for this! I’ve been wishing for a way to control when the wallpaper freezes. Can your app also keep it playing on the lock screen?
As much (fairly well deserved) hate as Tahoe gets, the video wallpapers and transparency are such a fun Windows Vista vibe I get nostalgia. Time to set this up with the Vista waterfall wallpaper and reallllyyy feel like it’s 2007!
That architecture diagram looks like claude did it. Not complaining though, good documentation has been a great side effect of using them.
Oh wow, that's seriously awesome. I did manage to reverse engineer the private screensaver `.appex` framework and make it work for Aerial 4 (I released a sample project/documentation last week here alongside v4 for those who want : https://github.com/AerialScreensaver/AppexSaverMinimal).
I also tried the same with Wallpaper appexes, the reversing seemed easy enough, but WallpaperAgent refused to load them, so I still use the classic trick of using my own window with a video player on top of the wallpaper, and below the icons.
I will have a look and check what I missed.
Wow, thank you for this. I've been working on a screensaver suite but LegacyScreenSaver is so janky. I was hoping someone would figure out apple's private wallpaper framework and you did!
Apple's best video wallpaper is "Macintosh". I am interested in how it works.
Claude or not its really coool ideation matter
Really nice work. We went down a similar rabbit hole recently and reverse engineered the Aerials catalogue to figure out how Apple wires this stuff up, so seeing another open source project doing this is great. The detail I love most and one I can't replicate on our own tool is how the animation persists between the login window and the live desktop. We built phonto as a cross platform take on the same idea, https://github.com/museslabs/phonto. I was about to start writing an article on the whole reverse engineering process and this might be the nudge I needed to start working on it.
One of the first things I removed from my Mac was the 45 gb (sic) worth of wallpaper videos.
Reminds me how windows 98 allowed using a HTML page as background. Said HTML could include videos.
Amazing, can’t wait to try this out!
On a similar note, I’d love to replace Aerials on tvOS with my own videos. I have yet to figure out how to craft a working data feed that the tvOS will accept using the secret mode that I believe is used in the retail store displays.
I find it weird today that we are still fascinated by video wall papers.
This was literally my first hack I did in high school in 2005. Doing something I’d never seen done before, a video wallpaper.
Step one, grab a handle to the video memory serving the wall paper. My “game trainer cheats” experience served me well. That was easy.
I had to figure out the hard way that per pixel calculations are extremely CPU taxing, the YUV to RGB video color space conversion. With a pirated Intel compiler I could get the naive blit into memory videy background working.
But then I wondered how other video apps were working so efficiently?
They used a GPU overlay! How it worked is you’d designate a color on your screen as the overlay color, and, when the screen was rendered, any pixel that was the overlay color was swapped with the full screen rendered video. I forget the specifics, it was some directX api. So, set the wallpaper to the hottest hot pink, run the renderer, and bobs your uncle, video wallpaper.
Everyone I showed this to was amazed, I really though I was on to something! Trouble was, I couldn’t get the damn thing to run on other people’s computers!
Little did I know or understand about the dreaded VCruntime redistributable. It wasn’t until 10 years later when I started working in industry I learned about “software distribution”. Linux makes it too easy, windows makes it too hard, static linking everything that isn’t network facing is probably the right approach.
I was so annoyed when Vista had the video wallpaper feature. “Man I was doing this years ago!”.
The app now has a landing page with a download link and you can also see my other projects: the largest one is Refrax browser, but I also have many other small utility apps!
So cool! This reminds me I wanted to try setting a custom video background with some footage i had. Didn’t even realize it wasn’t natively supported till i saw this!
You're not the first.
Nice project, thank you for sharing!
Out of curiosity: how much did you need to steer Claude while working on this project, and how long did it have?
Asking partly because I see "Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>", and partly because I keep hearing "so what do you do with all these agents", and this is a good example of what people do with all these agents.
Neat job. And that's interesting to see how it works. I hope to see apple connectivity being reversed engineered too on day
How did you steer Claude for strict concurrency, can you share the CLAUDE.md?
Are there specific video wallpaper sets I can download that leverage these features?
Wow, this is really awesome.
Wow that's great work! Thanks!
Very cool!
However, it may definitely get broken by Apple, as you note.
These damned wallpapers gave me my worst experience with Apple. MacOS would delete them and redownload automatically over and over again, using almost a terrabyte of data per week.
And I wasn't even using video wallpapers at the time.
Just discovered I had no internet 3 days into the month as my ISP had cut me off. Had to dig deep and spend hours I'll never get back trying to find out where all the data was going.
Here's a thread I just found now that shows others having similar issues: https://www.reddit.com/r/MacOS/comments/1ii38g8/macbook_wall...
remember when windows had html wallpapers. brb gonaa agent something that i hope doenst supply chain my entire life
Woah, thank you! Just checking these will keep on working on the lock screen and as screen savers too?
[dead]
[flagged]
[flagged]
[dead]
[dead]
Very neat. I was confused at first, I was like you can download the video screensavers.. why scrape the frames. Then I saw your comment and read I can use my own videos for desktop and lock screen. Great work! Dont bury the lede! A title with the hook of what and how would be super helpful!