Feeding my own videos to Apple TV screensaver

Balthasar picture Balthasar · Apr 21, 2016 · Viewed 11.8k times · Source

On the 4th gen Apple TV you can select a custom json file URL to load screensaver movies other than the apple ones. For that you have to go into settings, move to about, while on about, click Play/Pause 4 times. This enters a store/channel mode, which allows when selecting channel mode to specify the URL where to fetch the movies from via an intermediary JSON file describing the download URLs. This worked one time for me and one of my own movies was downloaded. But I changed the URL since then, and the Apple TV for several days has not downloaded any of the new movies.

I have both 1080p versions (about 600MB per movie) and 720p versions (about 70MB per movie) available. My version of the JSON file is located here: http://wx.inside.net/sat/ss.json, you can compare this with Apple's own version here: http://a1.phobos.apple.com/us/r1000/000/Features/atv/AutumnResources/videos/entries.json, I think the syntax is OK in mine.

The Apple TV has been on permanently, so would have had ample time to download the new movies, and the movies have been available (and play fine on the iPad, or MBP, using the URLs from the JSON file.

Questions: - Is there a way to get some feedback from the Apple TV as to whether it has fetched the latest JSON file? - Can the locally stored / cached movies be erased to force a download of the new movies? - Are there any size / quality limitations on what movie files it will play? - Can I somehow force the Apple TV to reload the screensavers URL?

Answer

Balthasar picture Balthasar · May 12, 2018

In addition to the above, you can make the Apple TV use your own JSON for the screensavers even when not in channel mode (i.e. in normal operating mode) by "spoofing" its DNS queries (in the whitest hat way possible).

Simply set up a DNS server that authoritatively resolves a1.phobos.apple.com to your own server but forwards any other queries, then set up a web server that answers to that name and replicate the full path to the JSON file, but (obviously) have it point at your own file.

Then set the DNS manually in the TVs network configuration to your DNS. Done!