- Notifications
You must be signed in to change notification settings - Fork7
An *Unofficial* Uitzending Gemist application for Apple TV 4 (**deprecated, use TV Gemist ☝🏻**)
License
4np/UitzendingGemist
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
UitzendingGemist
is an unofficial nativeUitzending Gemist
andNPO Live
application for the Apple TV 4 developed inSwift. It will allow you to browse and watch all video streams of the Nederlandse Publieke Omroep's (e.g. NPO, the Dutch public broadcaster)Uitzending Gemist website on your Apple TV.
NOTICE: Due to the release of the NPO 2.0 website and mobile apps in Spring 2017, the old API this tvOS app relies on was deprecated. As of Januari 2018 the NPO has shut down the deprecated API, which consequently means this tvOS app will cease to work. Please refer toTV Gemist; the project that replaces Uitzending Gemist.
Watching videos is very snappy and almost instantaneous, contrary to streaming from your iDevice to Apple TV over Airplay or using the built-in player in your smart tv. This is atruly native app contrary to some of the other apps that I have seen which are basically webcontainersusing a web app hosted on a remote server.
- Fastnative app for Apple TV
- Confirmed to work abroad viaUnlocator (disable the secure transport setting in the configuration view)
- Easy to use interface for browsing Programs and Episodes
- Live streaming TV and themed channels
- The possibility to (un)favorite programs
- Remembers watched episodes and will allow you to resume watching
- Will show you new unwatched episodes of favorite programs
- Closed Captioning for the deaf and hearing impaired (inDutch)
- The ability to watch YouTube videos for Programs that haveYouTube Resources
Unfortunately the app cannot be distributed in the AppStore as the NPO does not allow third parties in doing so. However, using afree Apple Developer account youcan compile it yourself and install it in your own Apple TV 4 (but also read the note below). While this may sound scary and difficult to non-technical users, it's really not that hard if you follow these steps :)
Prerequisites:
- anApple TV 4th or 5th generation (the ones that have an AppStore)
- run tvOS 10 or 11
- a recent Apple Computer running
macOS 10.11.x El Capitan or higher
- a (free) Apple Developer account (signuphere)
- aUSB-C cable to connect your Apple TV to your Apple Computer
Note: as of summer 2016 Apple has reduced the free Developer account provisioning from 90 days to a mere 7 days, which means when you are using a free Apple Developer Account the applicationwill expire every 7 days after which you need to re-deploy the app (make sure to keep your bundle identifier the same for your favorites to stick). The paid Apple Developer Accounts do not have a time based limitation and deployed apps will continue to work during the lifetime of your subscription.
The (latest) code was developed inXcode 9(alternative link) so you need at least to have that version installed. Continue with the following steps when you have finished installingXcode
as the next steps require a finished installation.
You can either download a zipped distribution (novice) or use Git (advanced).
For novice users it is probably the easiest route to just download thelatest zipped version and continue with step 3. After installation to your Apple TV you are safe to delete the downloaded project but keep theBundle Identifier (see step 5) you used in mind as you will need to use it again when you want to redeploy your app to your Apple TV (in the case of software updates or when your free developer limit (7 days) runs out).
While not required, it is advisable to have aDeveloper
folder on your machine. Execute the following code inTerminal
to create those folders and clone this project:
mkdir -p ~/Developer/tvOScd ~/Developer/tvOSgit clone https://github.com/4np/UitzendingGemist.gitcd UitzendingGemist
If you are not experienced with Git, you canpull new changes using:
cd ~/Developer/tvOS/UitzendingGemistgit fetchgit pull
Instead of using the terminal you can also use a graphical client likeSourceTree (generic) orGitHub Desktop (GitHub specific).
Now that everything is in place, you can open the project fileUitzendingGemist.xcworkspace
(andnot thexcodeproj
file)inFinder
. Alternatively, when you still haveTerminal
open you can also execute the following command:
open UitzendingGemist.xcworkspace
Connect theApple TV 4
using the USB-C cable to your Mac and perform / click through the following steps in Xcode:
The bundle identifier (see4 in the screenshot above) uniquely identifies your app. As you cannot reuse mine, you need to set your own bundle identifier in reverse domain format (for example: com.yourname.UitzendingGemist). Make sure you remember the name as you will need to enter the same bundle identifier when you want to update or re-deploy the app to your AppleTV.
Note: using a different identifier will make the app deploy next to a previous installation and separate favorites. Keeping the identifier the same will make the favorites continue to work after updates. Alsofree Apple Developer Accounts have a limit on the number of different identifiers you can create on a weekly basis (10).
In order to deploy the application to the Apple TV it needs to be signed with your team (see5 in the screenshot above). If you do not have a team (e.g.None
), or you see the messageNo Matching provisioning profiles found
click theFix Issue
and login with your Apple ID / Apple Developer Account credentials.
On the top left in Xcode click on the device the compiled program will be deployed to (see6 in the screenshot above). If your Apple TV 4 is properly connected you will be able to pick you Apple TV device (otherwise it will run in the Simulator).
Finally you are able to compile the program and deploy it onto your Apple TV! Click the play icon (see7 in the screenshot above). The application will be compiled and deployed on your Apple TV 4. After this the application will remain on the Apple TV.
Note: if you encounter issues or you are unable to play, this is where you should debug what it going on. Observe the Xcode console output while leaving your Apple TV connected. Alternatively you can also run in the simulator (see6 in the screenshot above) and observe the Xcode console output to debug the issues you are experiencing.
You're done! You can disconnect your Apple TV and start watching! :)
If you have set up a firewall to filteroutbound network requests, make sure to configure it to allow the following URL patterns you can expect the app to call (also see#18):
- apps-api.uitzendinggemist.nl (the API)
- api.github.com (check for new releases)
- *.omroep.nl (images, videos and live streams)
- googleapis.com (youtube API)
- youtube.com (youtube videos)
- freegeoip.net (determine your country by ip)
Note: as the video and image content URLs come from the APIs, although unlikely, these URLsmight change
Several programs haveadditional YouTube content available.
Content that is geographically restricted will show a warning then you are outside of The Netherlands. While the play button remains enabled you will most likely be unable to watch the video. If you encounter such warnings and are unable to play the respective videos, you might giveUnlocator a try. It has been confirmed to work reliably with the Uitzending Gemist tvOS app when you disable thesecure transport setting in the configuration screen (see below).
When usingUnlocator outside of The Netherlands, disable thesecure transport setting (which is enabled by default).
When closed captioning is enabled in the configuration screen (see above), all content will be subtitled (when available).
See the accompanyingLICENSE andNOTICE files for more information.
Copyright 2016 Jeroen WesbeekLicensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License.
About
An *Unofficial* Uitzending Gemist application for Apple TV 4 (**deprecated, use TV Gemist ☝🏻**)