Things I Found Out the Hard Way to Get the Most of the Nvidia Shield

I bought an Nvidia Shield (2017 model) on sale for $140 at the end of 2018 and am amazed by how much this tiny device can accomplish. It’s connected to our 58″ 4K Samsung TV and became the hub for our family’s media consumption, though getting things to that point was quite more involved than I would have liked. Here are some notes to maximize your experience while minimizing the hassle to get there.

If I were to buy a Shield now, I’d get the 2019 model because I keep reading that the AI 4K upscaling looks amazing, but everything in this entry should apply regardless of the model.

1. Use a USB Hard Drive so that Plex Can Scale As a Stable Media Server

In the past I went back and forth between running Plex and Emby on my PC, but I really wanted to move that task off my desktop which was one of the reasons why I bought the Shield in the first place. Shields come with Plex Media Server (PMS) pre-installed, so this is the option I went with.

PMS works well on the Shield (though there have been some Shield-specific issues such as local assets not showing) but if you have a large library, you do NOT want to set it up on the feeble 16GB of internal storage, as you’ll fill that in a hurry with all the media metadata, even if you turn off video thumbnails in your libraries’ advanced settings. I also went through two Sandisk USB keys but the whole thing would always end up flaking out at some point.

What eventually brought sanity and stability to the whole thing was to:

  1. Hook up a USB hard drive to the Shield. I freed up an old 2TB Western Digital drive I had on my network. The sweet spot for best price/TB these days is with the 8TB WD Elements hard drive.
  2. Install PMS from scratch and move it to external storage before you load media to your libraries, otherwise it takes forever or outright fails.
  3. Then and only then add media to your libraries.

You can mount remote drives on the Shield which will let you load them in PMS. I have a Synology NAS, two USB drives connected to my router, and several Google Drive volumes mounted on my PC via Stablebit CloudDrive all loaded in PMS for a total of about 50TB and still growing.

Do not let your attached hard drive get completely full, otherwise your Shield will badly crash. Ask me how I know.

We access Plex via various devices either through apps (e.g. on a 4K Fire Stick in one of the bedrooms) or the Plex web app, and of course on the Shield itself. My focus is on using Direct Play on the local network with a few clients, not transcoding to my extended friends and family which would require a beefier server.

I will reconsider which software to use when I receive my new Synology DS920+ NAS where I may offload the media server function – probably as a Docker container – but in the meantime running both the media backend and frontend on the Shield works rather well. If you don’t like Plex or like researching options until you drop, see Plex vs. Emby vs. Jellyfin.

2. Plex Library Pro Tips: Movies, TV Series, Documentaries, Video Tutorials, Sports, And More

This part became so huge that I spun it off into its own entry explaining how to turn Plex into the ultimate media server. These tips also apply to all devices that can run Plex Media Server, not just the Shield.

3. Media Players: Stick to Plex & Android Apps for Ease of Use While Kodi is Where It’s At for Extreme Customization

I like Plex as a server but the media player is a bit limited. Kodi on the other hand is infinitely configurable thanks to all its settings, skins, and addons, and handles more content types. Among the most useful additions to core Kodi, I recommend:

  • PlexKodiConnect, a better approach than the official Plex for Kodi solution. Bear in mind though that this adds more GBs of metadata for your Shield to handle, making the external hard drive requirement only more important.
  • Arctic Zephyr 2: good-looking and very flexible skin. The whole widget / submenu / submenu widget logic takes some time to get used to, but it lets you lay out your content exactly the way you want to. Do back up your skin settings when you have something you like, as it’s pretty easy to lose a lot of work with a couple of operator errors or because of crashes.
  • Trakt.tv lets you keep track of what you’ve watched and liked. You can also access public lists and create your own, which you can turn into skin widgets via OpenMeta. Lesser-known alternatives: TV Time, Simkl.
  • The MovieDB helper – details about movies, shows, actors. I use it to load Trakt lists (e.g. stuff that my wife watches by herself).
  • Library Node Editor – use this if you don’t want your stand-up comedy or documentaries mixed with fiction TV series.
  • Lazy TV – I use this to be able to automatically play the next episode of a series at the end of the one I just finished watching. (Similar functionality is built in Plex.)
  • Google Music EXP. We used to have a Google Music family subscription which I found was fantastic value for the money. Of course in their infinite wisdom Google had to mess up a good thing, and YouTube Music is such as pathetic replacement it’s not even funny. I just moved to Spotify Premium Family and it’s unlikely I’ll look back. I haven’t tried to put Spotify in Kodi, I’m happy to just use the Android TV app. Spotify works well with a variety of devices via Spotify Connect.
  • Youtube – I gave up for the time being after Google put some restrictions that killed the default option. There are some workarounds but I’m fine using Youtube outside or Kodi or via Chromecast.
  • Google Drive to directly access cloud content.
  • Git Browser to install plugins directly from the source.
  • When things go wrong, you’ll want to access the logs at:
    \Android\data\org.xbmc.kodi\files.kodi\temp

Warning: do NOT go crazy with addons! Some of them are memory hogs and I slowed my system to a crawl a couple of times until I went through a disabling spree. Install only a few addons at a time, keep only those you actually use, and monitor your Kodi performance before installing more stuff. Playing large video files requires significant amounts of free RAM.

I was able to stream 4K content from the cloud with only occasional, slight stuttering or pausing after changing Kodi’s AdvancedSettings.xml as described here (though cloud streaming randomly just won’t work, which can be quite frustrating).

Finally, the following have intriguing possibilities but in some cases I haven’t figured out how to best use them in combination with widgets and submenus:

To fully customize menu interactions, you can set up actions manually by calling built-in GUI functions such as as ActivateWindow(), by using a custom item (at the bottom of options for “Action > Choose item for menu”), like this:

ActivateWindow(Videos,"plugin://script.skin.helper.widgets/?action=next&mediatype=episodes&reload=$INFO[Window(Home).Property(widgetreload)]")

There are more advanced things I’ve not been able to do yet, such as:

  • Setting up a widget / widget submenu combo to directly browse movies by actor or director.
  • Hiding watched content in widgets.
  • Casting PVR and addons to other devices.
  • Synchronizing watched status from Trakt to Plex, which you want to do in case you reset your Plex libraries.
  • Mimicking in Kodi the Plex player’s ability to play theme music for TV shows. There’s tvmelodies and probably a couple similar solutions that require you to download theme mp3s manually. That’s too much work!

If all the above sounds too complicated, start by reading this skin widget setup tutorial.

What’s the takeaway? You can go crazy molding Kodi to your unique requirements, but it’s easy to make it unstable and the whole endeavor can turn into a real timesink. If you want something that just works, stick to the Plex UI. The latter has been improving lately with native support for subtitles and may well meet your needs as is. And if running a media server is overkill for your needs, MX Player does a good job letting you browse a folder hierarchy – including mounted network folders – without any extra fuss. It’s likely that your more advanced setup will break at some point, so it’s good to have a plan B (for Basic) in a pinch.

4. IPTV: An Entire Universe of Its Own. With Hit-and-Miss Quality and Overwhelming Quantity, Curation Is Recommended.

4.1. With Some Work You Can Create Your Own Cable Grid: Tivimate, m3u, EPG

On the frontend side, hardcore IPTV users seem to prefer the separate TiviMate app rather than Kodi. I started using it recently and like it so far. It does feel more responsive than Kodi so it’s a good option if you don’t mind using separate frontends to access your media library vs. the PVR/IPTV side. TiviMate is reasonably customizable and has a dedicated subreddit. A few observations after giving it a spin:

  • Some of its options are hidden at first sight, you’ll want to long press on the remote and move your cursor around to display the contextual media player bar and the side menu.
  • You can record programs with TiviMate, either live or scheduled via Custom Recording, though there’s no way to make it recur (PVR Live has support for “series recording”).
  • Unlike TVIrl or EPiG, with Tivimate Android TV integration remains on the wish list so the app’s content won’t show on the Nvidia’s home screen or Play Next section.

Any IPTV player is of course only as good as the IPTV source(s) you feed into it, i.e. stream playlists (typically m3u) and program guides (EPG) to match the streams to a program grid like you’d have on a cable set top box. Reliable IPTV providers are a bit like Fight Club, so I won’t mention anything here, instead focusing on what to do in case you do find good sources, as it’s only part of the equation.

Putting together a user-friendly IPTV experience becomes even more complicated if you’d like to watch TV from multiple countries and in multiple languages. In that case, you’ll really want to curate the many channels you’re interested in – leaving out everything else that you don’t care for – into a clean, well-organized guide. When sitting on the couch you don’t want to have to wade through the hundreds of local network affiliates available in the US alone. This initial selection and organization work is best done on a computer where you can preview channels (I recommend MyIPTV as VLC doesn’t load EPG files) and manage what to do with each one using a third party tool such as:

  • m3u4u: a free “m3u editor with EPG as a bonus feature. Epg must be used with its associated m3u4u playlist, not in isolation as a primary source of EPG.”
  • EPG.Best – costs between 1 and 4 euros per month to consolidate up to 1,000 channels into up to 7 m3u files. Their pitch is that it will save you the hassle of looking up and assigning TVG-ids manually to fill up your program grid. It does look like a real time saver in some cases, though only some people will have a need for something like this. One option I like is to tell apart or outright filter out VOD series and movies, which I find useless for my own purposes as I’ve built something vastly superior in Plex.
  • XMLTV.se – free, not sure how comprehensive it is. vProfil XMLTV is similarly free but it’s only a partial list that’s mostly listing European channels. I’m sure there are others like these out there.
I want my, I want my, I want my EPG (80s synth solo)

4.2. What About IPTV in Plex?

Plex used to support IPTV via plugins but they no longer work. There are some workarounds though.

First, you could feed the .ts files recorded by TiviMate back into Plex if you wanted, though the results are likely to be messy because the resulting file names have a date and timestamp, but don’t feature episode or season numbers like favored by Plex agents, and all files are dumped in the same main folder. I think TiviMate Premium supports up to 5 devices with a single purchase, but that’s still constraining vs. dumping recordings in a Plex library. Even if the metadata indexing is going to be limited, this at least gives you the ability to do rudimentary catch up TV in Plex.

The second, more sophisticated option is to route your playlists via a proxy like xTeVe or Telly. This does work with the Live TV/DVR functionality coming with Plex Pass, as if you were running an actual DVR such as HDHomeRun. Read this guide for details. I might give this a spin as a docker container on my NAS at some point as the ability to merge m3u files could come handy, as well as restreaming.

There’s another way to blend IPTV with Plex by using dizquetv to turn Plex libraries into pseudo live TV channels. I have zero interest in using this myself, but it’s funny to see what people come up with.

Spoof Plex into playing IPTV streams as if coming from a physical tuner

4.3. Other IPTV Options: Kodi, Android Apps, Plex

In comparison, many Kodi addons seem to be a huge waste of time, with transient content and/or low-quality streams that can’t compete with a curated collection of quality encodes from the top private torrent trackers. And like torrents, the good stuff seems to be somewhat hard to find by design. Still, I found a couple useful options that are readily available either as Kodi plugins or separate Android apps:

  • IPTV Simple Client to emulate channel surfing with program schedules and summaries.
  • Catch-Up TV & More – the best IPTV source I’ve found for Kodi so far, especially for francophone content. You can set it up for live TV.
  • Rai TV: Italian content.
  • RTP: Portuguese. They also have a decent Android app.
  • Xumo: has many free English-speaking channels, including Bloomberg, though a lot of that is cable junk.
  • Ditto with Plex’ live TV, it’s quantity over quality, but maybe there’s something in there that scratches your itch.

It seems possible to hack your way into loading several URLs into Kodi’s PVR but I haven’t pursued that. Similar functionality is built in Tivimate, which alone might make the case for it being the better option. In the end if you’re willing to invest time and possibly spend a bit of money, editing your own m3u and epg files gives the best result. A TV guide full of “no information” blocks defeats its purpose.

Beyond that, there’s a slew of options to record shows from your own TV tuner (including with Plex Pass), but that’s outside of the scope of this entry and not something I’m interested in doing.

5. Misc Useful Apps

Since the Shield is an Android device there are thousands of apps you could install but these few are must-haves:

6. Remote Access Files & the Shield UI

There are a few ways you can control your Shield remotely. You will need to go back and forth between your Shield and other devices for authorization purposes, so some of that stuff may best be done with a smartphone or tablet while sitting in front of your TV.

  • You can share the Shield’s internal and external storage on your network, I mounted the USB drive connected to my Shield as a drive on Windows for convenience. Make your life easier by assigning a fixed IP address to your Shield, either in its settings, or even better, via DHCP reservation on your router.
  • I really wanted to be able to control the Shield’s UI from my PC, which turned out to be its own side quest. I first tested TeamViewer, got it to share the screen, but couldn’t get clicks to register. I then tested Vysor which did handle clicks but the resolution in the free version is really blurry. I finally set up scrcpy as explained in this video, which like Vysor relies on enabling ADB network debugging after you’ve turned on developer mode in the Shield (Settings > About, scroll down to Build, click on it 7 times). This is very responsive at a good resolution, is free, and you can even copy/paste! The main limitation is scrcpy doesn’t forward sound, and I haven’t found how to do a long press (keyboard shortcuts).
  • Kodi has a web interface to change its settings remotely.

7. Gaming: Android, Cloud, Emulation

You can stream games from you PC, including your Steam library, using either the native GameStream app or Moonlight. Since it’s the type of setup that requires back-and-forth authorizations between your Shield and PC, remote control can save you running up and down the stairs like I’ve had to do many times in the past!

Geforce Now is a letdown for us because they don’t have servers in Chile and the 150+ms ping to North American ones is a deal breaker. Other than that, seems like a good option.

There are also extensive emulator options but my son turned out to be much less interested in them than I thought, so I’ve only dabbled with this. It does take some time to set it all up. See:

Of course you could always run Android games.

8. Ancillary Hardware: Mobile Devices, Remotes, Voice Assistants, Home Automation

8.1. Remote Options

Like many users I’m not a fan of the Shield’s remote. I bought a Rii i25 air mouse remote / keyboard combo which I’m satisfied with as I hate typing via an on-screen virtual keyboard. Before that, I used a Logitech wireless keyboard as well as Nvidia’s mobile app, but I never found either option to be as “couch friendly” as a physical handheld remote. Many people like Logitech’s Harmony but I’m not a fan of their pricing.

Speaking of managing your Shield from a mobile device, besides the aforementioned Nvidia app, here are the main options:

  • Plex – obviously limited to whatever is in your Plex library. Includes Chromecast.
  • Kore – the official remote from Kodi. Decent, nothing too fancy, works, no Chromecast.
  • Yatse – on paper the paid version does does a lot more than Kore, thanks to its ability to cast Kodi to other devices. Unfortunately I haven’t been able to get streaming to work reliably.
  • Wako – Trakt meets Kodi remote, but the ads are intrusive and the lifetime contribution a bit steep (and no, I’m not going to subscribe to a mobile app).

8.2. Voice Assistants & Home Automation

I put a Govee Wifi backlight behind the TV, not essential but it is a nice touch and it responds to Alexa most of the time. Let’s be honest, all these home widgets work every time, 60% of the time.

Speaking of Alexa, one of many abandoned side quests was to use this: Kodi Connect – Alexa. It’s an involved process that failed for me half-way through but this reportedly works well… when it does. There’s something similar for Google Assistant.

PlexKodiAddon supports Alexa, though it’s a bit more cumbersome to use because you have to say “Alexa, ask/tell Plex to…” instead of using Alexa’s native media support. But Alexa keep losing track of the Plex server and can’t find other players such as our Samsung TVs or Fire TV Stick 4K even though they’re supposed to be supported devices. I always feel “so close yet so far” with voice assistants.

I’d also like to chain Plex and Govee instructions through an Alexa routine for extreme laziness but didn’t get that quite working to satisfaction yet.

Jeff Flemming in the comments below suggests settings up a Home Assistant server, which has many integrations including AndroidTV, Plex, and Kodi, and may send ADB commands to launch specific apps on the Shield via the ADB – Android Debug Bridge. I’d want to run this on my NAS, but docker is not supported on my ancient Synology DS213j. It’s on my install list once I receive the DS920+ I just ordered. See for instance: Alexa to Plex: Resume TV series with no remote buttons (node red).

A Future Project: HomeAssistant in a Docker container managed via Portainer

8.3. Cheaper Alternatives for Extra Rooms

If you want media players in other rooms that don’t need the full-fledged Shield experience, I’ve had a good experience with:

  • Amazon’s Fire Stick 4K, it’s a good $50 option as a Plex client with an Android-like interface, though you do get some ads.
  • TCL TVs with almost-stock Android TV. In the US they mostly pushed Roku so far, but there’s now regular Android TV too like in the rest of the world.
  • I have two Samsung TVs where the Plex player is installed but I’m not fan of the Tizen UI itself.

9. Conclusion: You’ll Get Out of It What You Put In It, But Pick Your Battles

To summarize my recommendations:

  • Get the core storage right or you won’t have a sustainable solution.
  • Ditto with networking: cable your home with Cat6 Ethernet cable if you can, or get good wifi routers (possibly mesh) if you can’t.
  • Plex and selected Android TV apps such as TiviMate are where it’s at for reliable, responsive behavior.
  • Kodi can unlock a world of customization at the cost of spending a lot of time getting there. This is not the spouse/kids-friendly option.
  • Home automation is fun but like Kodi, it’s never as simple as it looks. Once I figure how to get Alexa to set all lights just right and launch the latest TV episode of my choice in one incantation, I’ll let you know!
  • In the end there’s no perfect solution, accept that there are tradeoffs.
  • If you don’t want your family to endlessly mock you because your awesome media server is yet again borking, cut back on the cutting edge experimental stuff and train them to use basic apps like MX Player as a fallback solution!

Note: Amazon links include an affiliate tag. A lot of effort went into this entry, if you find it useful I appreciate your support.

9 thoughts on “Things I Found Out the Hard Way to Get the Most of the Nvidia Shield

  1. Jeff Flemming

    If your looking into complete Alexa/Google assistant integration I suggest homeassistant. Cheapest way is to run it on a pi3 or pi4. That or run it docker. HA has a lot of community support. I’m running ADB I. It over the network to my shield and it opens up a lot of doors that you simply can’t get with the built in Integration. You can do a LOT bit it does take so e technical skills if you want to get really involved.

    Reply
  2. Jeff Flemming

    Meant to leave this here. Guide on how to open any app using HA. The great thing is you create everything in HA then push it to Amazon and Google. Then everything just shows up in the Alexa or Google Home app. I just wish I knew more about pushing commands from ADB.

    Going to try the Plex plugin for Kodi. Kodi is absolutely the best media player out there but it’s not great at file naming conventions, at least not “out of the box”. Half my TV shows up as a date of 1982 which tells me nothing so I use the built in file browser….

    https://www.reddit.com/r/homeassistant/comments/dsyqsv/can_we_use_homeassistant_to_open_apps_on_android/

    Reply
  3. otravers Post author

    Thanks Jeff, I’m going to be playing with this for sure! I updated the entry to reflect your suggestions.

    Reply
    1. otravers Post author

      I had never heard of it so I looked it up, it might be good but it looks pretty dead to me.

      Reply
  4. Alvin Leung

    I’m in the same boat that you were. I’ve been using Emby since it was Media Browser and it handles some things really well, and other’s not so much. Recently I’ve delved into the IPTV scene and have found that Emby Theater doesn’t really handle IPTV too well, and lacks in features and functionality.

    Anyways, to keep it short, I’m now testing migrating everything to the Nvidia Shield Pro. As many IPTV services are moving away from providing m3u files, I’ve had to move away from Emby as my IPTV front end altogether.

    Some programs which you may want to test out are iMPlayer and MyTVOnline, which are similar to Tivimate, but have some improved useability over the latter.

    For EPG, you might want to have a look at webgrabplus. They have a comprehensive listing of all countries, although set up is a bit confusing.

    Reply
    1. otravers Post author

      Thanks Alvin for your input, I’ll check those options out. We end up spending more time toying with all this than watching the media we collect!

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *