Skip to content

kopurando/virga.app-youtube-dl-GUI-for-OS-X

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

When offliberty seems too slow or cumbersome, other options are pricey or malwary-suspicios (hello, 4k video downloader), this app comes handy.

virga.app: youtube downloader for OS X (GUI for youtube-dl)

Minimalistic one-button "GUI" for youtube-dl, written in AppleScript (hence for OS X only, tested in Mavericks, Yosemite and El Capitan).
virga can download videos and extract audio from services like YouTube, Vimeo, Mixcloud, Soundcloud etc. with a click of a button in your Dock.

August 2017 note

A recent combination of youtube-dl & Python introduces the following error when trying to download videos from YouTube: insecure string pickle 🥒

To fix, install libav: brew install libav

Or update Python to 2.7.13: https://www.python.org/downloads/release/python-2713/

More details: ytdl-org/youtube-dl#7172 (comment) https://stackoverflow.com/a/41155029/1559834

Installation

Download the virga.app into your Applications folder and drag its icon onto your Dock.
The app uses notifications for output, so enable Banners for Script editor in your Notifications Center for more verbose operation.

Note: the app is currently unsigned (I am not a developer), thus you may need to open System Preferences -> Security and Privacy -> General and allow virga.app to run. It is required only once. If this app becomes popular, I will sign the code to avoid this step.

Usage

  1. Open a desired URL in Chrome or Safari.
  2. Click the app icon in your Dock.
  3. Files are downloaded into your Downloads/from youtube and others/ folder.

You can start as many downloads as you like: everything will be done in parallel in the background.

The app uses an URL from the frontmost browser tab/window, and communicates back using Notification Center. You can close or switch to another tab as soon as you click virga, download will finish in background.

If you like to use youtube-dl custom parameters, just create ~/.config/youtube-dl/config and virga will use it.

Features

  • GUI w/o interface: just click a button and job is done (most of the time)
  • Downloads video or audio (or both) from any of the sites supported by youtube-dl (full list, updated constantly)
  • Downloads search results (e.g. search on youtube), use with cauton! There is no "Stop" button yet :)
  • Multi-threaded: youtube-dl is forked, so the app can handle many simultaneous downloads
  • Works with Safari and Chrome-based browsers
  • Uses locally installed youtube-dl and ffmpeg or prepackaged ones (come inside virga.app bundle)
  • Updates youtube-dl if media download fails (useful for ever changing Mixcloud...)
  • Downloads whole playlists (i.e. all videos/audios from a playlist at URL) ![virga.app playlist dialogue] (https://dl.dropboxusercontent.com/u/3635046/nert.png)

Prerequisites

Default virga.app bundle includes youtube-dl, ffmpeg and rtmpdump.
youtube-dl is used by this app. The app bundle comes prepackaged with youtube-dl in it, but you can install youtube-dl manually (will be used if installed).
ffmpeg is optional, but required for extracting audio from downloaded videos. Prebuilt ffmpeg binary comes inside virga.app as well.

You can also download virga barebone.app without youtube-dl, ffmpeg or rtmpdump bundled (in case you have them installed).

To do

  • Work with any browser (Safari, Canary etc)
  • Auto-install ffmpeg and youtube-dl (if not installed)
  • Auto-update yt-dn on request
  • Create an Apple dev. profile and sign the app bundle
  • Stop button to abort downloads in progress (e.g. create pid-files and kill processes on repeated virga launch with the same URL?)
  • Download progress output (e.g. use Dock badges or notifications center widgets?)
  • Checkbox to open Terminal (for verbosity)
  • Interactive notifications (open downloads folder or downloaded file)
  • Resume after timeout/disconnection (catch "ERROR: unable to download video data: The read operation timed out", and retry download)
  • Write log file on errors (and open it on notification click)

It is my first experience with Applescript, and I think, it gave me significant brain damage already.
It would be a good idea to re-write the app in Python, make it cross-platform and more feature-rich. Maybe next year... :)

Credits

This GUI was inspired by Efty Edge's workflow for Alfred app, but none of his code was used in the end. Original thread: http://www.alfredforum.com/topic/1933-youtube-downloader-based-on-youtube-dl/

This software uses code of FFmpeg licensed under the LGPLv2.1, and rtmpdump

Thanks to Vitor Galvao for browser detection routine
https://gist.github.com/vitorgalvao/5392178

Icon made by Freepik from Flaticon is licensed under CC BY 3.0

And of course, special thanks to all youtube-dl contributors!
http://rg3.github.io/youtube-dl/about.html

About

Simple one-button "GUI" for youtube-dl for OS X. Downloads videos and extracts audios from youtube, vimeo, mixcloud, soundcloud and much more

Resources

License

Stars

Watchers

Forks

Packages

No packages published