Experimental: TV/Movie deep-links via imported .strmlnk files

In the latest pre-release build (v2021.01.15.2241), I've added support for a new experimental .strmlnk file format, which allows you to add links from within Channels to other apps on your Apple TV. (This was inspired by recent discussion in Add deeplinks to purchased Itunes content)

Documentation

Say you have purchased Jurassic Park on iTunes. You would go to https://tools.applemediaservices.com/ and search for the movie, then click Content Link > Copy Link to get something like this:

https://tv.apple.com/movie/jurassic-park/umc.cmc.3bp8rj8ab9otj4ug279xhib2f?itsct=tv_box&itscg=30200

Next, you would setup a new imports path on your DVR for movies, and create a new file there called Jurassic Park (1993).strmlnk with the url inside. For example, from the command-line:

echo "https://tv.apple.com/movie/jurassic-park/umc.cmc.3bp8rj8ab9otj4ug279xhib2f?itsct=tv_box&itscg=30200" > "/Volumes/DVR/Imports/Movies/Jurassic Park (1993).strmlnk"

And that's it! Now when the DVR scans your imports folder, it will create an entry for Jurassic Park:

With the latest Apple TV TestFlight release (v1.15.2250), you can then click Watch on your Apple TV and it will open iTunes to take you to the movie.


You can put any valid iOS/tvOS link in these files. Most apps have a way to deep-link into content, and you can generally figure out how to do it for a certain app by searching google or r/shortcuts on reddit.

Here are a few examples to get you guys started:

Have fun, and share your experiences below. If this experiment works out well, we will consider doing the same for TV shows as well.

15 Likes

Disney+ deep links can be found in your browser.Just browse to a movie and click to watch it. Use the exact URL that's in the address bar while watching a movie.

2 Likes

Absolutely amazing guys, thank you soo much. I have tested with the Jurassic Park example and it works like a dream - the wife also sends her regards!

1 Like

This is great. Thanks!

Anyway to do my whole library without doing one at a time?

If I wanted to update the content of the strmlnk file, should I remove it from the library, prune, then re-add? Or does Channels read the url on selecting Watch?

Use the Refresh Metadata option on the movie. It’ll read the new url in.

Works very nicely! I'd love to see this implemented for TV shows.

Also, maybe we can collectively make a spreadsheet for links or just upload the strmlnk files to share?

The best way would be to use a GitHub repo full of strmlnk files, then everyone can just pick and choose them as well as add more.

2 Likes

Do the links appear as an imported movie in the Web UI?

Yes, when you click Watch on the web UI it opens the same link.

2 Likes

Do these open inline or throw you to their respective apps ?
You could create a Siri shortcut and automator workflow as an action to convert and import the selected item as a strmlink file

It opens the apps. There’s no way to play them inside Channels.

Once you’re done watching, you’ll be in the other app and not Channels. There’s obviously plenty of pros and cons for this functionality. But we thought we’d try it nonetheless.

Yes it still adds integration. The behaviour is somewhat like the previous versions of the Apple TV app

I don't know if echo works on Windows.

The file should have just the url without quotes. You can open it in notepad and paste the url.

How does remote streaming work with strmlinks

It doesn't. It would look for the program that the link refers on your client device. How that app handles streaming is up to the app. Regardless, the external link takes you out of Channels, and it has no further control over the linked material.

If you make a link that opens Netflix, then it will open the Netflix app. It doesn't matter if you're at home or remote.

Right so the url is executed and the rest will depend upon accounts, authentication etc.

Perhaps explained: the rest depends upon the other app. After opening the link, it is out of Channels' control.