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.

2 Likes

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" ]]
then
	source "$HOME/.path"
else
	PATH='/usr/local/scripts:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin'
fi

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

	exit 1
fi
	# 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" ]]
then
		# 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
fi

if [[ ! -s "$INPUT" ]]
then
		# 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
fi

## 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
TEMPFILE="$HOME/.Trash/dl-get.$$.$RANDOM.txt"

	# 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
do

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

exit 0
# EOF

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:

2 Likes

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.

2 Likes

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