The forum has been archived
While the forum may not be active, the community still lives on Discord! Click here to join us.

I made a video downloader! (for Mac)

Share your creative endeavors
Post Reply
User avatar
Wowfunhappy
Administrator
Posts: 958
Joined: September 30th, 2012, 12:46 pm

I made a video downloader! (for Mac)

Post by Wowfunhappy »

The internet at my college is quite bad. Files download slowly, and streaming 1080p video at even a low bitrate is pretty much impossible.

Suffice to say, I like watching videos in HD, and I don't like waiting for videos to buffer. It isn't the waiting per se that's the problem—it's being interrupted and forced to wait in the middle of a video that I don't like. What I wanted was a way to download videos beforehand, so I could do something else in the interim and watch the video when it was fully downloaded. There are a lot of video downloaders out there, of course, but they were all a little bit more too involved for my use case. They all seemed to either have an ugly UI, or they'd force you to copy and paste a URL beforehand (this takes too long), or they'd top out at 720p quality.

So, about a year and a half ago, I wrote my own video downloader. I've been using it ever since. It's how I watch pretty much every video that's uploaded to the web, and despite its simplicity, I thought it was worth sharing. You can download it here.

It's Mac-only, and it will stay that way, for two reasons: first because I'm a mac user and I made this program for myself, and second because it's written in Applescript. Most of the real credit should go to the open source youtube-dl command line utility—my program is essentially a convenient wrapper for their program.

Anyway, here's how it works:

1) Put the Video Downloader application in your dock
2) Open Safari and navigate to a video you want to download (It only works with Safari because that's what I use, but adapting it to work with another browser would be really, really easy)
3) Click the icon on your Dock. Your browser's back button will automatically be pressed, and the video will begin downloading.
4) When the video is done, it will be added to your Downloads folder, and a notification will be displayed in the corner of your screen.

The key advantage for me is how quick the process is: There's no UI to get in the way, asking you what video quality you'd like or forcing you to manually copy and paste the URL. Also, it works on multiple videos at once: If you see another video you want to watch while the first one is still downloading, just click the icon on your dock again; the second video will begin downloading automatically as soon as the first one is complete.

This should theoretically work on any of the websites supported by Youtube-dl, although I obviously have not tested every one. Off the top of my head, I know that I've used it successfully on: Vimeo, Gametrailers, Comedy Central, PBS.org, BBC iPlayer, cbs.com, kickstarter.com, and (obviously) Youtube.

A couple of limitations/possible issues:
1) No progress bar. As far as I'm aware this is impossible with Applescript.
2) Currently downloading videos will appear as icons in your Dock. This is obviously not the best place for these icons to go, but again, I'm limited in terms of what Applescript can do.
3) If you're running a Python application, the video won't start downloading until after that application is closed (youtube-dl uses Python; if Python is running, my program will think that there's a video download already in progress).

You can look at the source code with Applescript Editor, if you feel so inclined. Let me know if you make any improvements. Enjoy!
Post Reply