Watch Netflix and YouTube offline on mac

Hi MPUers, is there a way to watch Netflix and YouTube offline on my mac? I didn’t find any official apps for them. I am a YT Premium subscriber.

SetApp has an app, Coherence X, that lets you make apps out of websites, using a chromium browser. I use brave and have created apps for YouTube and Pluto TV. It works well enough.

How would you download video in the app?

You can’t. I misunderstood your question. My bad.

There is an app, Downie, that says it downloads YouTube videos. It’s on SetApp as well.

Downie is great for YouTube.

There’s a service called PlayOn that works relatively well for streaming services but it’s paid. It’s a bit of a “gray” area so I won’t link directly to it. It’s effectively just screen recording from the service directly.


Why not use the native download feature in the Netflix app? Or are there specific videos that aren’t available for download?

Each video on YT will have a download button. I use this all the time for listening to things while I’m out walking (since I have a monthly data cap on my phone plan). I walk about 1.5 hours a day.

Downie is great (as @kennonb mentions) the geeky answer I use would be:

  1. install youtube-dl on your mac via Nix or Homebrew
  1. copy urls and get them downloaded

This is how I do it:

  • I run a shortcut on my iOS device in the share-sheet to ask me what the title of the clip should be, transfers the url to a text file with the title as the name, that then ssh-es it over to folder on the mac
  • Hazel picks up the text file, lifts the url and name and feeds it into this script I modified from @tjluoma’s writeup here:

The script:

#!/usr/bin/env zsh -f

if [[ -e "$HOME/.path" ]]
	source "$HOME/.path"

if ((! $+commands[youtube-dl] ))
	echo "$NAME: 'youtube-dl' is required but not found in $PATH" \
	| tee -a "$HOME/Desktop/$NAME.errors.txt"

	exit 1
	# This is the same file that we created in the Shortcut,
	# Remember to change the name of the user!!!!
        # If you change the filename in the Shortcut, change it here too
INPUT="/Users/[user]/Library/Mobile Documents/youtube-dl/urls.txt"

if [[ ! -e "$INPUT" ]]
		# What happens if the script is run but the file does not exist?
		# We should just quit immediately
	echo "$NAME: The input file does not exist."
	exit 0

if [[ ! -s "$INPUT" ]]
		# What happens if the script is run and the file exists but it is
		# zero bytes? We should just quit immediately
	echo "$NAME: The input file is empty."
	exit 0

## Ok, so if we get here, the file exists and is not empty.

	# we're going to use this so we can remove the original file ASAP
	# in case another URL gets sent by another invocation of the Shortcut

	# This will rename the original file to this temp file in the trash
mv -vf "$INPUT" "$TEMPFILE"

	# the 'egrep' line will look for any line that starts with 'http'
	# which will also match 'https' URLs, of course
	# and then it will process each line that starts with https
	# and ignore all of the other lines, including any blank lines.

egrep '^http' "$TEMPFILE" | while read line

        #now go get it!
	youtube-dl \
		--output "$HOME/Downloads/youtube/%(title)s-%(id)s.%(ext)s" \
		--restrict-filenames \
		--continue \
		--no-overwrites \
		"$line" &

exit 0

Hazel then picks up the end result, puts it in a folder (same name) and transfers it to my Jellyfin library for viewing. I view these offline when I am on the road using infuse to download to the device and view.

Another option even geekier to setup, but easy to use, is to put metube in a docker container on your mac, just copy past the url there and have the end result processed by hazel as above.

so there you have it, options a-plenty :slight_smile:


I guess OP is not willing to walk with his Mac :laughing:

Anyway, that button works on YT Premium for mobile and Chromium Browsers for macOS, but not on Safari.


haha. Yes.

I found out that only chromium browsers can download youtube vids within the browser memory for offline viewing. I was using firefox so didn’t know that.

There isn’t an option for Netflix :frowning:

surprisingly a lot of people use Chrome on their Mac. I haven’t used Safari in years…

1 Like

I often use YouTube-dl and would recommend it. Very easy to use although it is command line.

Thanks for the script. I’ll have to try it out myself!

You could - as I also do - use Transloader. You install it on your Mac and on your iPhone.

On the Mac you set Transloader to open YouTube-url’s with Downie. When in YouTube on your iPhone for example, you then open the share-sheet and select Transloader. Your video will then be downloaded on your Mac.

Try it out, it’s awesome. :slight_smile:

1 Like

If you really must, you could use Parallels, create a Windows image and use its Netflix app right there. Definetily not practical but… it will download your movie.

I know, it works really well. I prefer the ssh route as that also works for all my linux machines and my steam deck.

1 Like