Framed digital display with controller for viewing livestreams, acting as digital picture frame, and other video functions
Python
My original desire for this was to be able to display live stream videos, since there are so many cool ones that exist (Alaskan bears, cities around the world, birds, trains, Old Faithful, etc.). I looked into art TVs and other displays or digital frames and none of them had the flexibility of building something myself.
Functionality:
I purchased a mini computer that runs everything. I could have used something even lower powered, but it was nice to have it be a standard Windows OS I'm used to and put my code on. The computer is plugged into the wall and just connected with a USB C cord to the display. If you used something smaller, you could likely incorporate it into the frame or hide it in the back and have something cordless to mount to the wall.
I decided to use a Streamdeck as the controller for the system so that my little kids could easily switch streams or videos.
I later added connectivity to my home assistant via a flask app so I could control the frame from my phone. I also got the functionality to work with a universal remote pointed at a sensor in the computer but the remote kept dying so we don't use it much
Live stream videos:
I can pull up an individual live stream or put on a loop that opens different ones over time. I have a Python script using Selenium to pull open a Youtube or other livestream page and play the video in fullscreen. This works pretty well except some Youtube livestreams stop over the course of months and restart with a new URL. It's not too big a deal for me to populate the new URLs, but would be nice to automate this in the future if possible. I have the URLs for streams I want to see live in a google sheet so it's easy to update whenever I want new ones. The kids can change the video feed by pushing a button on the Streamdeck.
Home videos:
I have a number of home videos of my kids (I make each child a video for each birthday) that they can pull up and watch just by pushing a button on the Streamdeck. They have fun with this. The display monitor has a speaker in it so they just listen using that. It's loud enough when you're near the frame but I would maybe connect to an external speaker in the future for better sound quality.
Books:
Similar to the live streams, I connected to a few Youtube videos of kids books being read aloud that my kids can open and watch. The only programming difference here is that it shuts the browser when the video ends (to prevent autoplaying other videos), whereas the livestreams keep the video open.
Picture slideshows:
I have a huge number of photos in a folder that I keep updated. When I call up the slideshow function it opens FastStone Image Viewer (a nice free photo management software) and calls up keyboard shortcuts to run a slideshow using previously used settings (can change transitions, duration, shuffle, etc.) and shuffles through my photos for hours. The management of this is so much easier than other digital frames I've used (needing to have a subscription and upload through a browser).
Display:
I looked into many display options. I wanted something pretty flat that I could maybe hang on the wall and could get frame. I settled on a portable monitor with a custom frame mounted to it. The monitor is UPERFECT 18.5" 120Hz Portable Monitor 1080P FHD Portable Gaming Monitor
https://www.newegg.com/18-5-uperfect-m185dm1-b/p/2NY-008V-00061?Item=9SIBJBBK997832
The frame was purchased from Art to Frames with the following order details
Product Type - Frames with Single Mat
Frame Name - Antique Silver
Image Size - 16x9
Glass Size - 18x11
Finished Size - 20x13
Mat Code - custom-dm-16x9
Glass Type - No Glass
Hardware Type - Easy To Hang / Install Horizontally
Backing Type - Corrugated
I mounted the frame to the monitor by taping the monitor to the mat and then screwing some flat bracket into the back of the frame that held the display flush with the back of the frame. Tape alone started to peel and loosen up but the brackets plus tape have held strong for years now.
The whole thing is sitting on a frame stand from Michaels. I'll probably make a better cord hiding option eventually or wall mount it.