Video on iOS is broken.
Just about every service writes their own player with inconsistent controls that have poor support for platform features. For example:
- No iPad picture-in-picture support for most video services
- No support for making a video full-screen
- Hidden/missing playback speed controls
- Broken bluetooth audio sync in the YouTube app
- Poor battery life in some apps due to inferior custom codecs instead of using AVPlayer
So I wrote my own player that can load just about any video from the web or native apps. Here’s what it looks like:
And here’s a screencast of the Shortcut in action using the player.
This solution offers:
- A clean and consistent player
- Native system video with all the controls and platform features that enables (PiP, full-screen, and keyboard shortcuts)
- Prominent playback speed controls
- Prominent repeat toggle
- Playback from many sources, pretty much anything youtube-dl supports
- A convenient Shortcut to help load videos
- Saves the playback position, so you can always pick up where you left off (great for an 8 hour Twitch stream!)
To power this you need the following apps:
First, you need to setup the main dependency of this shortcut, youtube-dl. youtube-dl is an amazing project that lets you download videos from many sources (not just YouTube!) for offline playback.
However, this is not about downloading the video. Rather than using the download features of this library, all we’re after is the url to the original media. This URL can be passed as the src to an HTML5
Create a new local (not iCloud) Empty Script called
youtube-dl-downloader.py. This project was created to download and configure youtube-dl to run in the Pythonista environment.app
Paste the contents of this script into
Run the script and choose the “Download YoutubeDL” option.
Create another empty script called
Paste in the contents of this script.
Import this shortcut
Now you’ll be able to use the share-sheet to open just about any YouTube/web video link in this custom player.