A Foolproof Raspberry Pi Media Player

The media landscape in the home has changed precipitously over the years. Back in the days when torrents were king, DVD players and TVs started to sprout USB ports and various methods of playing digital videos, while hackers repurposed office machines and consoles into dedicated media boxes. [Roiy Zysman] is a fan of a clean, no-fuss approach, so built his PiVidBox along those lines.

The build, unsurprisingly, starts with a Raspberry Pi. Cheap, capable of playing most common codecs, and fitted with an HDMI port as standard, it’s a perfect platform for the job. Rather than fiddle with complex interfaces or media apps, instead, the PiVidBox uses a simple script. The Pi is configured to continually scan the /media folder for mounted devices, and play any videos it comes across. Simply pop in an SD card or USB drive, and the content starts rolling. No buttons, remotes, or keyboards needed!

It’s a interface without much flexibility, but it makes up for that in barebones simplicity. We can imagine it would come in handy for a conference room or other situation where users grow tired of messing around with configurations to get screens to work. The Raspberry Pi makes a rather excellent basis for a media player build, and we’ve seen some stunning examples in the past!

26 thoughts on “A Foolproof Raspberry Pi Media Player

      1. As a DIY Home Automation geek, it amazes me how easily people get confused by seemingly simple, straightforward concepts. Like a light switch with two momentary contacts, push up to switch on, push down for off. What happens is, people try pushing down once, then, as the light does not turn on, give up and ask me. Nothing beats the actual fool-testing by a certified, unbiased-by-prior-knowledge fool.

        1. They may not be as unbiased as you think. In fact, they may be trained to believe that all lights are turned on by pushing down on the switch, maybe from years of experience with their own system at home.

          A truly unbiased tester, say a young child, would probably try both ways on the switch.

          1. > they may be trained to believe that all lights are turned on by pushing down on the switch

            All the light switches here (Australia) I’ve seen, you flick the switch down to turn them on.

          2. Some North American Indian tribes believed than sometimes a “contrarian” is born. This person is likened to an autistic or probably dislexic individual that has to “relearn” some physical and mental activities every single day. Tell that person 20 objects and they will not remember to repeat all of them back but ask any of thousands of things and will accurately tell what was or was not said.

            That made me ideal for this type of testing and is perhaps where self-constraining coding style comes from.

          3. Exactly why when making my automated lighting family friendly I sought to make it function as much as possible like the light switches you’ll find in 99% of people’s homes.
            As much as the electronics dont like to work that way, that’s the challenge for the automation tinkerer.

            You dont embrace people into your ideas by making them feel stupid.
            UI 101 – most companies could benefit from learning that

      2. Like you would never imagine, too. I once wrote a small program that calculated the heat dissipation for electrical enclosures. All of the data to be entered was numeric values. I had a friend test it and told him to use made up values for the enclosure dimensions, like 13 x 12 x 8 or similar. He dutifully types in the word “thirteen” and promptly crashed the program because it was expecting numeric data and not alphabetic data. Then he couldn’t understand why anyone would press 13 rather than typing out thirteen.

  1. I fool proof everything I make by having my 6 year test run it all with no instructions. If she can figure it out, I shove it in an enclosure and finish the project.

    The one thing I’ve learned in these tests: little kids who have never seen an old school NES controller try to hold it like a Wiimote. Time to put a tilt sensor in the RC car controller to rotate the dpad…

    Don’t have kids? Borrow your neighbor’s kid for an hour. I bet they’ll thank you for the break, and you get a truly unbiased tester.

  2. By no means, this is so definitely NOT FOOLPROOF.

    This “hack” is made by the use of the notorious SD card killer, aka the Trashberry Pi – so five minutes playing with the power supply, and this “foolproof” player is definitely dead.

    But to give some just to the Raspberry Pi, it is possible to make a much less vulnerable solution, if one instead uses Alpine Linux which runs entirely in RAM.

    “That’s great, but we want to have this script run automatically on boot rather than starting it each time. To do that, we’ll add a file to the /etc/xdg/lxsession/LXDE-pi/autostart”

    OMG this gets better and better, it is a fullblown Rasbian including X, just for running Omxplayer.

    Looking at my calender, it says the 19’th of November, not 1’st of April – hmmm.

    1. What are you blathering about? I have a small arsenal of RPi’s and SD card failure is not an issue at all. I suspect it will be no better or worst than drive failure on the average consumer laptop. My Pi3’s have run without incident for years now with logging on and frequent file IO. So if an SD cards breaks tomorrow, I’ll just grab a new one of the shelf, restore the backup of the device that failed, swap out cards and be up and running again in under 15 minutes.

      Also using autostart is perfectly reasonable if the script starts an application that runs on X.

      Why don’t you just do you, and the rest with do themselves.

      1. “Also using autostart is perfectly reasonable if the script starts an application that runs on X.”

        You miss the point – Omxplayer writes directly to the frame buffer, no need for X.

        “Why don’t you just do you, and the rest with do themselves.”

        I do, but I do not expose on HAD!

    2. For those that need more explanation…
      The death of SD cards in an RPi is due to the ‘official’ releases of linux os, i.e. raspbian, that don’t take into account that they are running on an SD card.

      I worked for a major manufacturer that has the exact same problem. They slap a linux on an SD card with a Swap partition and wonder why they have to periodically send out SD cards to customer locations when their systems go down. I explained to them that SD have a fixed number of right cycles and that it’s much much lower than a hard drive, and they didn’t seem to care.
      The other cause of failure is not due to write cycles, but power failure on writes that corrupt the file system. ‘Jounaling fixes that’ hmmmm no. not on an SD card. You still get corruptions. I’ve seen it many times.

      I roll my own distros for the RPi, when I can. I use a ramdisk, and load the entire OS into memory, which sounds similar to Alpine’s solution. No writes to the SD card mean it runs perfectly every time, and can’t damage the disk image. This is similar to booting from NV, like an EEPROM. I have yet to see one of my systems ‘eat a card’

      The RPi is actually a wonderful piece of hardware for the price. It is a real shame that it is used so poorly by the masses. For this I blame the offical distros – They should know better.

  3. Hang on… Torrents are not king anymore? What’s the new Hotness?

    IMHO, Netflix WAS king, until every content producer and their cousin wanted in on that action, and pulled their content to their own streaming service… now, you’ve got Netflix, Hulu, Disney+, HBO Go, HBO Plus, Apple TV, Youtube RED, Amazon Prime Video, CBS all Access, etc.

    Used to be that you could cancel cable, get Netflix, and be happy at $10/month. Now to replace cable you’ve got to subscribe to almost a dozen different services that push the price back up to where cable was, or HIGHER.

    All that adds up to people switching back to Torrenting…

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.