Simplified Smart TV via Raspberry Pi

Overview

The original goal here was to create a simple to use Media Player to show converted family movies on the 'big screen'. Over time (and during pandemic lock-in) MoviePi's role expanded to provide access to a couple of free streaming TV and Movie services.

Tailored for users 95+ that know how to use their VCR!

Migrated to new site fall 2021 - Original site/recipe @ http://ventures.tpedersen.net/errata/raspberrypi/moviepi

Background & Capabilities

The original plan was to load a USB stick with MP4 movies and provide a simple mechanism to play them on a non-smart TV. The Chromecast concept (casting from a tablet) didn't work well for my elderly end-users so I ended up creating a contraption that operate similar to the VCR/DVD they were used to! The latest gizmo serves-up family moves (mp4) from the internet (googledrive) rather than the thumbdrive and provides access to a couple of free streaming services - Crackle, YouTube and National Geographic.

Level of Difficulty & Prep Time

Pretty simple project, no programming required.

Minimal Raspberry Pi or Linux know-how required ...

... BUT ... Kodi configuration takes some getting used to.

... AND ... Google Drive and YouTube Add-ons were amazingly complicated. Reserve an extra hour+ for these!


Probably an hour's worth of work without google add-ons

Hardware

As always, built using junk from my workbench collection.

MoviePi 1:

  • Raspberry Pi 3 (Arm7), 4 USBs, Ethernet + WiFi

  • Old MS MCE Remote (see pic above)

  • Originally 64g USB 3 Memory Stick

  • 16g Micro SD

  • 2.5amp Power Supply

  • HDMI Cable

MoviePi 2:

  • Raspberry Pi 2 (Arm7), 4 USBs + Ethernet

  • EDIMAX WiFi Adapter (optional)

  • An old Gyration MCE Remote*

  • 16g Micro SD

  • 2amp Power Supply

  • HDMI Cable

Software

Originally created using OSMC_TGT_rbp2_20190105 which was Kodi v17. MANY problems with upgrades and maintenance using OSMC. Switched to LibreELEC.tv in 2021. Much better
... BUT ...
requires a dedicated RPi.


Step By Step

Kodi Download/Install

**** June 2021: Switched to LibreELEC. Seems MUCH more stable than OSMC image used in past ****
*** Notes to self based on instructions from -
https://www.technadu.com/install-kodi-on-raspberry-pi/8258/ ***
*** See Also: Official Kodi
HOW-TO:Install_Kodi_on_Raspberry_Pi ***

  1. Download appropriate image for RPi hardware from LibreELEC download page @ https://libreelec.tv/downloads_new/

  2. Flash to Micro SD - Raspberry Pi Imager is my current favorite

  3. Add to Pi (insert SD) and Boot ... Kodi (LibreELEC) comes right up and begins guided install
    (PUse Keyboard, Monitor and Ethernet for initial install)

    • Select Language & Timezone
      // Settings: Interface->Regional, if you are not asked during install //

    • Set Device hostname (MoviePi, for me)

    • Enable SSH (for remote access)
      // Now forces PW change! Step 4 below only if necessary! //

    • Read/Accept License

  4. TURN OFF AUTO UPDATES! (I will take care of these for my user base!!!)
    // Settings: System -> Add-ons -> Updates = Never Check for Updates //

  5. <possibly more linux tweaking/hardening to come here>

That's it ... probably 10 mins from start to finish

Kodi Add-Ons

Via Keyboard/Monitor:

Install Add-Ons (< 10 Mins, if you pay attention)

Main Menu/Settings->Add-ons/Add-on Browser/Install from repository:
(Hint1: Exit sub-menus via dot-dot/up-level *not* ESC key!)
(Hint2: Search for Add-ons if classification is not intuitive)

Look and Feel:

  • Screensaver: Bing: Photos of the Week

  • Skin: Pellucid


Via Search:

  • Media sources - Google Drive

  • Media sources - Crackle

  • Media sources - YouTube (this guy has small set-up wizard )

    • Language and Region: English/United States

    • Use Geolocation

  • FilmRise for Documentaries
    // Originally used National Geographic but something broke //

Kodi & Add-On Config

STILL via Keyboard/Monitor:

Touchup Kodi Settings

Main Menu/Settings (Gear ICON)
(Hint1: Use ESC to navigate in settings!)
(Hint1: Exit sub-menus via dot-dot/up-level *not* ESC key!)

Settings:

  • Interface Settings->Skin Pellucid

    • Configure Skin:

      1. Stop video playing on return to menu -> ON!

      2. Low CPU power mode -> ON! (Not sure what this does, but Pi2 IS low power!)

    • <I HAVE had to reboot after skin change ... may be necessary>

  • Add-Ons: Install from repository->All Repositories->Video Add-ons
    Make sure you test (Launch) Add-Ons ... also nice if they are legal

    • Crackle: No need to config but Launch to test!
      It may install additional add-ons before it works (e.g. Widevine CDM)

    • Google Drive: Little more tricky

      1. Launch addon. The first time will force gdrive logon/credentials

      2. Add an Account, you'll need a browser running during this one - ipad/phone or nearby computer

      3. Should now be able to navigate thru gdrive - ours contains mp4 videos

    • YouTube: This one may make your head spin! Often a MOVING TARGET ON Google Cloud Console - Screens change every time I visit!

      1. You'll need a Google API Key. Refer to guide @ https://www.videoconverterfactory.com/kodi/youtube-api-key.html
        WHEN you get stuck in steps below ... it has pictures of the screens!

        • Visit the friendly Google Cloud Platform Console via https://console.developers.google.com & Login

          • If you don't already have an API Key, create a New Project ... THEN ...

            • Enable APIS and Services

            • From API Library Welcome, click on YouTube Data API v3 & ENABLE

            • Click on CREATE CREDENTIALS

            • Fill in project info and click on What credentials do I need?

            • OATH Popup: Set User Type as External and click on Create, then SAVE

            • Credential Wizard, click Refresh and click Create OAuth client ID ... then DONE Button

      2. NOW, add your API keys to YouTube Add-on. Guide @ https://github.com/anxdpanic/plugin.video.youtube/wiki/Personal-API-Keys

        • Settings->Add-ons->Youtube->Configure

          • API->Enable API configuration page (this web interface will allow copy/paste of keys!)

          • HTTP Server->Select Listen IP and use IP Address of Kodi Server (I may have used localhost 127.0.0.1)

          • Goto: Http://<ipaddress>:<port>/api (Default port is in HTTP Server settings)

            • Paste in API Key, API ID (aka Client ID) and API Secret (from google clown console)
              (Psssst: API Secret is buried in "OAuth 2.0 Client IDs")

      3. Finally, boot Kodi! It will make you feel better too!

      4. When you launch YouTube Add-on the first time, you will will be 'guided' through connecting the device to Google

        • go to https://google.com/device

        • Enter code displayed on Kodi screen

        • <We use a special google email/user for youtube and google drive so traffic/behavior is not attributed to any specific person>

  • Have a bourbon, you'll need it!

Look & Feel

Nearly done! Some touch-ups to make this thing as simple as possible!

STILL using attached Keyboard/Monitor:

Visit Kodi Settings AGAIN!

Add-ons - Favorites
Navigate to each Add-on, Launch and Right-Click to Add to Favorites (we'll put favorites on the main screen in a sec)

  • Crackle: I create a favorite for Movies and another for TV

  • Google Drive: Navigate to desired Google Drive Folder (or folderS) and add to Favorites

  • YouTube: Little harder to choose, start w/single favorite to top level of YouTube or simply: "New Search".
    // ended up using FilmRise plug-in for YouTube Documentaries only - see also: filmrise.com //

Interface - Set Main Screen Buttons

Navigate to settings->Interface->Skin->Configure Skin

  • Select Menus and Edit Home Menu

  • Delete everything! Our MoviePi is as simple as possible. Season to taste

  • Add buttons for Favorites saved in previous section via Add->Set Label and Change Action

Our four button MoviePi currently look like this:

Family Movies | TV Shows | Movies | YouTube

Update & Cleanup

Almost done ....

Updates:

Force Kodi to update - this will take a while because we started with an old/outdated image with functional Lirc (MCE Remote)

  • Back to Settings->System->Add-ons ... you should see Updates setting, ours is set to Install updates automatically

  • I THINK a Kodi boot will force check for updates. It seems a little unpredictable

Check/Update All Add-ons after Kodi Update

  • Click each Button from mainscreen and play a video to test things out, it also forces updates ...
    (you may see some weird $h1t, but better you than some unsuspecting 95 year-old who want to watch a TV show from 1975!)

    • The updated Crackle, for example, forced another add-on install - Widevine CDM and pulls it our of a Chrome OS recovery image


That's That!

Touch-ups and Tweaks

Jan 2022 Update: Streaming videos choppy/buffering!

Ack! Lesson Learned: Turn off Automatic Updates!

An update in Jan 2022 seemed to cause streaming videos to pause/buffer ... a lot! Basically unwatchable but my parents are so used to my contraption quirks that they didn't mention it! Fixed, still running on a RPi2, but not easy

Waaay too much debugging .... ended up being the latest version of Widevine - looked like an auto update forced the update of an add-on called Inputstream Helper and a DRM gizmo called Widevine CDM. The answer for me was to go through the update, then rollback Widevine to version 4.10.2252.5. There was a LOT of chatter (and misdirection on the interweb), this forum post led to the fix: https://forum.libreelec.tv/thread/25189-since-2-weeks-openelec-rpi3-buffers-all-the-time/

Took the opportunity to rebuild & retest the recipe using LibreELEC-RPi2.arm-9.2.8.img on a better SD (16g)

Lesson Learned:

  1. TURN OFF AUTO UPDATES!!! My 95+ year olds DON'T NEED TO DECIDE IF WIDEVINE SHOULD BE UPDATED!!!!!!!

  2. REMEMBER TO MAKE A DISK IMAGE OF GOOD/COMPLETED PROJECTS!