
Youtube-dl - pmoriarty
https://rg3.github.io/youtube-dl/
======
rg3
It's very nice to see a project I started reach the front page of HN.

I remember starting the project around 2006. Back then, I had a dial-up
connection and it wasn't easy for me to watch a video I liked a second time.
It took ages. There were Greasemonkey scripts for Firefox that weren't working
when I tried them, so I decided to start a new project in Python, using the
standard urllib2. I made it command line because I thought it was a better
approach for batch downloads and I had no experience writing GUI applications
(and I still don't have much).

The first version was a pretty simple script that read the webpages and
extracted the video URL from them. No objects or functions, just the straight
work. I adapted the code for a few other websites and started adding some more
features, giving birth to metacafe-dl and other projects.

The raise in popularity came in 2008, when Joe Barr (RIP) wrote an article
about it for Linux.com.[1] It suddenly became much more popular and people
started to request more features and support for many more sites.

So in 2008 the program was rewritten from scratch with support multiple video
sites in mind, using a simple design (with some defects that I regret, but hey
it works anyway!) that more or less survives until now. Naturally, I didn't
change the name of the program. It would lose the bit of popularity it had. I
should have named it something else from the start, but I didn't expect it to
be so popular. One of these days we're going to be sued for trademark
infringement.

In 2011 I stepped down as the maintainer due to lack of time, and the project
is since then maintained by the amazing youtube-dl team which I always take an
opportunity to thank for their great work.[2] The way I did this is simply by
giving push access to my repository in Github. It's the best thing I did for
the project bar none. Philipp Hagemeister[3] has been the head of the
maintainers since then, but the second contributor, for example, was Filippo
Valsorda[4], of Heartbleed tester[5] fame and now working for Cloudflare.

[1]
[http://archive09.linux.com/articles/114161](http://archive09.linux.com/articles/114161)
[2] [http://rg3.name/201408141628.html](http://rg3.name/201408141628.html) [3]
[https://github.com/phihag](https://github.com/phihag) [4]
[https://github.com/filosottile](https://github.com/filosottile) [5]
[https://filippo.io/Heartbleed/](https://filippo.io/Heartbleed/)

~~~
101914
Remarkably, YouTube makes scripting downloads very easy. The script below
needs only sed and some http client and it has worked for years. I have only
had to change it once when there was a change at YouTube; the change was very
small.

    
    
       # this script uses sh, sed, awk, tr and some http client
       # here, some http client = tnftp
       # awk and tr are optional
       
       
       # wrapper for tnftp to accept urls from stdin
       ftp1(){
       while read a;do 
       ftp ${@--4vdo-} "$a" 
       done;}
       
       
       # uniq
       awk1(){ awk '!($0 in a){a[$0];print}' ;}
       
       
       # some url decoding
       f1(){
       sed '
       s,%3D,=,g;
       s,%3A,:,g;
       s,%2F,/,g;
       s,%3F,?,g;
       s/^M      
       //g;
       #  ^ thats Ctrl-V then Ctrl-M in vi   
       ' 
       }
       
       # remove redundant itags
       f0(){
       sed -e '
       s/&itag=5//;t1
       s/&itag=1[78]//;t1
       s/&itag=22//;t1
       s/&itag=3[4-8]//;t1
       s/&itag=4[3-6]//;t1
       s/&itag=1[346][0-9]//;t1
       ' -e :1
       }
       
       # separate urls 
       f2(){
       sed '
       s,http,\
       &,g' 
       }
       
       # remove unneeded lines
       f3(){
       sed '
       #/^http%3A%2F.*c.youtube.com/!d;
       /^http%3A%2F.*googlevideo.com/!d;
       /crossdomain.xml/d;
       s/%25/%/g;
       s,sig=,\&signature=,;
       s,\\u0026,\&,g;
       /&author=.*/d;
       ' 
       }
       
       
       
       # separate cgi arguments for debugging
       f4(){
       sed '
       s,%26,\
       ,g;
       s,&,\
       ,g;
       ' 
       }
       
       # remove more unneeded lines
       f5(){
       sed '
       /./!d;
       /quality=/d;
       /type=/d;
       /fallback_host=/d;
       /url=/d;
       /^http:/!s/^/\&/
       /^[^h].*:/d;
       /^http:.*doubleclick.net/d;
       /itag.*,/d;
       '
       }
       
       # print urls 
       f6(){
       sed 's/^http:/\
       &/' | tr -d '\012' \
       |sed '
       s/http:/\
       &/g;
       ' 
       }
       
       f8(){
       sed 's/https:/http:/'
       }
       
       FTPUSERAGENT="like OSX"
       
       case $# in
       0) 
       echo|$0 -h 
        ;;
       [12345])
       case $1 in
       
       -h|--h)
       echo "url=http[s]://www.youtube.com/watch?v=..........."
       echo usage1: echo url\|$0 -F \(get itag-no\'s\)
       echo usage2: echo url\|$0 -g \(get download urls\)
       echo usage3: echo url\|$0 -fitag-no -4o video-file
       echo N.B. no space permitted after -f
       
        ;;
       -F)
       $0 -g \
       |tr '&' '\012' \
       |sed '
       /,/d;
       /itag=[0-9]/!d;
       s/itag=//;
       /^17$/s/$/ 3GP/;
       /^36$/s/$/ 3GP/;
       /^[56]$/s/$/ FLV/;
       /^3[45]$/s/$/ FLV/;
       /^18$/s/$/ MP4/;
       /^22$/s/$/ MP4/;
       /^3[78]$/s/$/ MP4/;
       /^8[2-5]$/s/$/ MP4/;
       s/.*?//;
       '|awk1
        ;;
    
       -g)
       while read a;do
       n=1
       while [ $n -le 10 ];do
       echo $a|f8|ftp1||
       echo $a|f8|ftp1 &&
       break
       n=$((n+1))
       done \
       |f2|f3|f1|f0|f4|f5|f6|f1|sed '/itag='"$2"'/!d'
       done
        ;;
    
       -f*)
       while read a;do
       n=1
       while [ $n -le 10 ];do
       echo $a|$0 -g ${1#-f} |ftp1 $2 $3 $4 $5 ||
       echo $a|$0 -g ${1#-f} |ftp1 $2 $3 $4 $5  && 
       break
       n=$((n+1))
       done
       done
        ;;
    
       esac
       esac
    
    

There are separate scripts for extracting www.youtube.com/watch?v=...........
urls from web pages to feed to this script.

~~~
phihag_
The problem is that this only works for some YouTube videos (for example it
will fail for basically all VEVO videos), not to mention maintainability
issues.

~~~
101914
I had to look up what "VEVO" was. A joint venture of several major record
labels and Google launched in 2009.

Personally I have no need for "VEVO" videos. Nor do I ever encounter VEVO
youtube urls posted to websites, like HN. I wonder why?

As for maintainability, I beg to differ. The raison d'etre for this script
arose out of frustration that early YouTube download solutions, e.g. gawk
scripts, clive, etc., kept breaking whenever something at YouTube changed. I
got tired of waiting for these programs to be fixed, if that ever happened.

I can fix this 164 line script faster if YouTube changes something than
waiting for a third party to fix something they developed that is far more
complex. Moreover, it does not rely on Python. Is there something wrong with
DIY?

I see someone posted a link in this thread to another 208 line script, yget,
that uses sed and awk. This further demonstrates the relative simplicity of
downloading YouTube videos.

~~~
pbhjpbhj
> _Personally I do not watch "VEVO" videos but I am curious what they are._ //

Go to youtube.com, you may need to scroll but most unlikely, bam! "VEVO" video
with x-million views: it's a music video promotion brand.

Actually it's not globally promoted so outside of Western Europe and USA I'd
guess you don't get VEVO vids so much?

According to
[https://www.youtube.com/watch?v=5zs1ClgqhLw](https://www.youtube.com/watch?v=5zs1ClgqhLw)
their 100th most viewed video has 200 million views. Top 10 are all above 600
million.

They're quite a big brand.

~~~
101914
Interesting.

An alternative to goofing around on the youtube.com web site, scrolling
constantly and getting hit with advertising and endless lists of "related"
videos is to search and retrieve youtube urls from the command line via
gdata.youtube.com.

------
anonova
Despite its name, youtube-dl doesn't just download from YouTube but from a ton
a different sites as well [1]. The rate in which this project keeps up with
changes is incredible.

[1]: [https://github.com/rg3/youtube-
dl/tree/master/youtube_dl/ext...](https://github.com/rg3/youtube-
dl/tree/master/youtube_dl/extractor)

~~~
schoen
It seems like quite a modern success story for the classic "Cathedral and the
Bazaar" model of open source development structure and motivations.

As I recall, it was originally written by one person (Ricardo Garcia) in 2008
and worked only on YouTube using (by later standards) relatively simple
heuristics to find the URL to extract the video. But it's catalyzed an
explosion of interest in every aspect of the problem: tracking changes to the
HTML of the video sites, adding support for more video sites, figuring out
indirection and parsing through multiple pages and HTML objects, making the
tool much more multiplatform and easier to install and update...

It's attracted hundreds of contributors (many of them motivated by a personal
desire to be able to use the tool on a different site, or to fix a bug that
was preventing them from downloading video in a particular rare case) and
maintained an incredibly rapid pace of development.

~~~
pavlov
I'm not sure if "leeching copyrighted content" was the kind of motivation that
Eric Raymond had in mind for future open source projects when he wrote
_Cathedral and the Bazaar_.

~~~
coldtea
Yeah, because at the core of human civilization lies a respect for copyright,
a BS notion that was developed for exploiting the restrictions of (analog)
physical formats for profit...

~~~
crucialfelix
Copyright law was developed in the 1700s precisely to prevent people from
exploiting the limitations of physical formats for profit.

It's the opposite of what you've stated.

Authors, composers and publishers needed protection against cheap printing
presses that would just print anything that was popular and flog it in the
marketplaces.

~~~
coldtea
> _Authors, composers and publishers needed protection against cheap printing
> presses that would just print anything that was popular and flog it in the
> marketplaces._

The limitations I mention are the difficulties and cost of the printing
itself.

What authors wanted was to restrict who can print their work -- but it's not
true that authors "needed protection" because printing presses started
appearing.

That makes it sound like authors were paid for the work until those "cheap
printer" pirates appeared. But on the contrary it was the invention of the
printing presses themselves that gave authors an industry in the first place
-- for millenia authors just wrote for free.

~~~
snowwrestler
The reason the industry of paid authoring could develop is because of
copyright. Without it, all the value of the new printing industry would have
accrued to the printers, and none to the authors.

~~~
coldtea
Yeah, and culture would be free.

------
renekooi
YT videos lag a lot when I stream them directly in VLC 2.2.0, (`vlc <youtube
link>`) and some protected videos don't play at all, so I often use this:

    
    
        ytplay() { youtube-dl "$1" -o - | vlc - }
    

As a side benefit it of course also allows you to instantly watch stuff from
all the other sites YT-DL supports :)

~~~
unicornporn
May I ask what the program "ytplay" is? Google doesn't guide me.

~~~
skeletonjelly
It's a function name that renekooi would have made up to run the command
following it without having to type it all out every time.

------
d0ugie
Quick protip for those wondering, the simple command to download an entire
youtube channel is like so:

$ youtube-dl -citw ytuser:LastWeekTonight

I downloaded a channel with 121 videos, 4.4 gigs, took 26 minutes, so 2.8MB/s
average. Curious if the Youtube people will shrug it off and free the beer or
rate limit or more aggressively combat this.

Also, to get the total number of supported sites:

$ youtube-dl --extractor-descriptions|wc -l

466 (wow)

As this can run on anything with Python, I guess that includes Android[0],
iOS[1], Windows Phone[2], heck even Blackberry[3]??

[0] [https://python-for-android.readthedocs.org/en/latest/](https://python-
for-android.readthedocs.org/en/latest/)

[1] [https://code.msdn.microsoft.com/windowsapps/using-python-
on-...](https://code.msdn.microsoft.com/windowsapps/using-python-on-
windows-e914e5c5)

[2] [http://pythonforios.com/](http://pythonforios.com/)

[3]
[http://forums.crackberry.com/blackberry-z10-f254/blackberry-...](http://forums.crackberry.com/blackberry-z10-f254/blackberry-10-os-
has-built-python-intepreter-d-798856/)

Thanks pmoriarty for submitting this. Awesome and I'm just getting started
poking around with it. Makes me really want to learn Python, seems that's what
all the fun stuff[4] is coded in.

[4] [http://motoma.io/pyloris/](http://motoma.io/pyloris/) :)

~~~
fredoliveira
Downloading an entire channel is exactly how I downloaded the How to Start a
Startup class from youtube. For the interested:

    
    
      $ youtube-dl -citw ytuser:UCxIJaCMEptJjxmmQgGFsnCg

~~~
d0ugie
fredoliveira: Eyeballing those lectures, which are enormous, youtube-dl is
helping you more easily teach people to make their lives and careers better,
instead of just downloading Taylor Swift songs. So youtube-dl is indeed being
used for Good.

------
dirkk0
This may sound surprising but via youtube-dl I bought more music than before.
If I find a new band that I might like, I search for Youtube videos first. The
non-official videos often show just the cover of the CD or some useless slide
show, so I extract the audio to have it in my playlist. Once I am decided that
I like the music I had over to Bandcamp or Amazon to buy the mp3s. As an
example: I lately bought four digital cds from progmetal act Redemption
because someone upped their cd 'This Mortal Coil' to Youtube.

------
nklas
A very nice utility to have installed.

It can also convert a video to an mp3:

youtube-dl --extract-audio --audio-format mp3
[https://www.youtube.com/watch?v=OKbtC223e30](https://www.youtube.com/watch?v=OKbtC223e30)

~~~
zuck9

      > youtube-dl -F OKbtC223e30
      139         m4a       audio only  DASH audio   49k , audio@ 48k (22050Hz), 525.88KiB (worst)
      171         webm      audio only  DASH audio  129k , audio@128k (44100Hz), 1.27MiB
      140         m4a       audio only  DASH audio  129k , audio@128k (44100Hz), 1.36MiB
      172         webm      audio only  DASH audio  176k , audio@256k (44100Hz), 1.78MiB
      141         m4a       audio only  DASH audio  255k , audio@256k (44100Hz), 2.71MiB
    

Just use youtube-dl -f 141 to direct download just the audio from YouTube. I
always use this to download songs.

~~~
phihag_
While -f 141 is of course perfectly fine, may I suggest -f bestaudio ? That
should work fine for non-YouTube sites (soundcloud or so), and will get you a
better version should YouTube one day add it. If you really prefer 141, you
can also use -f 141/bestaudio to fall back to bestaudio if 141 is unavailable.

~~~
zuck9
That'll come in handy. I always used -F to find out what is highest # for
downloading audio.

------
saurabh
This is the best video downloader. It has downloaded videos from every site
I've thrown at it. It even downloaded videos from Comedy Central!

Edit: [https://rg3.github.io/youtube-
dl/supportedsites.html](https://rg3.github.io/youtube-dl/supportedsites.html)

------
escherize
I use this all the time and It's really great.

I have messed around with one sketchy youtube downloader or another for years
until I found this.

Oh, and it's on brew!

------
JoshTriplett
I've used this quite extensively. It's less critical for YouTube now that
almost all YouTube videos work with the HTML5 player, but it helped quite a
bit when every other video required Flash. Still necessary for many third-
party sites as well.

It'll also download an entire playlist, and add sequential numbers at the
beginning (with the -A option).

~~~
ekimekim
I've also used it for downloading all possible formats for a video when
debugging problems that only seem to be there in some resolutions.

~~~
JoshTriplett
Yeah, the format enumeration works quite well too. I've used it to download
the "original" format for videos available in higher-than-1080p resolutions,
as well as using the --extract-audio option.

------
zuck9
No one pointed out that it has a do-whatever-you-want license. This is the
thing which bothers me most. There are gazillions of shitty youtube
downloaders (paid, free and adware supported) out there that people still use
and the code is being powered by the work of open source developers.

~~~
icebraining
I don't think the license would change anything, even if they chose something
like AGPL. The sites would either ignore it (hard to prove infringement) or
put a small link with their source. They don't rely on being proprietary
anyway.

~~~
zuck9
Well it'll atleast do something to limit creations and who knows if the
copyright attribution was placed on many projects, youtube-dl would have
received more attention, I'm surprised it wasn't already posted to HN.

It's very nice though for legitimate developers.

------
xuhu
I use this to replace noisy audio on a smartphone recording of dancing lessons
with a high-quality version from a youtube video, automatically:
[http://youtu.be/AVIHpaNQLS0](http://youtu.be/AVIHpaNQLS0)

~~~
tripzilch
Wow that's quite an impressive tool!

I mean I understand that all the separate steps are stuff we've seen is easily
possible nowadays, but putting it together in a single UI makes it (roughly)
3000x as useful!

I want to try it, anyone had luck compiling it for Linux?

 _EDIT /update:_ Well I gave it a try, grabbed QtCreator, loaded the project,
not much luck. Some issues with the "phonon" library, it seems. I'm not very
good with getting C++ stuff to work when it gives build errors. I did spend
about half an hour fiddling and googling error messages, but now it's time to
give up, sorry :)

I'm writing this update to let you know that one of the errors I did manage to
fix, is that Windows has case-insensitive paths/filenames, while Linux does
not. Apparently the path for the phonon library is lowercase, so you should
`#include <phonon>` lowercase. I'll try to leave a Github issue about this.

That didn't help much (complaints about the State enum in soundfix.h) which I
tried to fix by also putting `#include <phonon>` in the soundfix.h. I'm not
sure if that was right _at all_ , but it did seem to fix that particular
problem. As a result I was greeted with a whole bunch of other (I think
unrelated?) errors about some types not being strictly compatible or
something. That is where I check out until I know more about C++, decided it
had been long enough, and just writing you a little message to let you know
how it went.

However, it made me install and try QtCreator, something that I was meaning to
do anyway. So that's a win :)

~~~
xuhu
I'll try compiling it on qt5/linux as well, thanks for tracking down the
phonon issues!

------
quoiquoi
There's also a GUI wrapper for it: [https://github.com/MrS0m30n3/youtube-dl-
gui/](https://github.com/MrS0m30n3/youtube-dl-gui/)

And a php web app that uses youtube-dl as a a backend:
[https://github.com/Rudloff/alltube/](https://github.com/Rudloff/alltube/)

------
lelandbatey
Youtube-dl is the biggest pre-built thing I use in GifMachine[0] after ffmpeg,
and I've used it in innumerable projects since then. I love youtube-dl, it's
fantastic!

[0] - [http://gifmachine.xwl.me/](http://gifmachine.xwl.me/)

~~~
hugogee
Nice gifmachine - Thank you!

------
derekp7
Is there a plugin version of this program, which would dynamically change any
(supported) flash video reference to an HTML5 video tag? That way I can get
rid of flash completely.

~~~
Udo_Schmitz
Don’t know about this program, but I use this on OS X Safari:

[http://www.verticalforest.com/youtube5-extension/](http://www.verticalforest.com/youtube5-extension/)

Helped to get rid of Flash, although I have Chrome in my programs folder for
sites that are still flash only.

------
noisy_boy
I've setup this function in my bashrc to check for the latest build if the new
one is more than 24 hours old and then run it with arguments supplied:

function youtube-dl {

    
    
            exe=$HOME/bin/youtube-dl
            link=https://rg3.github.io/youtube-dl/download.html
            url=$(curl -s $link |grep ">sig<" |head -1|sed -e 's/href="/|/g' -e 's/">/|/g'|cut -d"|" -f2)
    
            fetch=N
            if [ -s "$exe" ] ; then
                    ts=$(date "+%s")
                    yts=$(stat -c "%Y" $exe)
                    [ $(( ($ts-$yts)/(60*60) )) -gt 24 ] && fetch=Y
            else
                    fetch=Y
            fi
    
            if [ "$fetch" = "Y" ] ; then
                    url=$(curl -s $url |grep ">sig<" |head -1|sed -e 's/href="/|/g' -e 's/">/|/g'|cut -d"|" -f2)
                    echo "Fetching [$url] and deploying to [$exe]"
                    curl -s $url -o $exe
                    chmod a+x $exe
            fi
            [ -z "$@" ] && $exe --help || $exe $@
    }

~~~
delinka
sounds like a job for a package manager ;-)

------
pavs
youtube-dl gets updated very frequently and the version that comes with your
distribution (ie, ubuntu) usually is out of date and doesn't work often on
most sites. So its better to download from the source and update it using
"youtube-dl -U"

~~~
JoshTriplett
That's true for the version in Debian stable as well. The package in unstable
tends to pick up upstream updates pretty quickly, though, especially when
they're needed to fix site support.

------
rb2k_
The amount of time it takes to keep up with all of the changes big sites make
is impressive.

At some point I decided to write something similar in Ruby (
[https://github.com/rb2k/viddl-rb](https://github.com/rb2k/viddl-rb) ) and I'm
kind of ashamed of how broken things are from time to time.

Video hosting sites don't have APIs and reverse engineering the sources for
the videos is like shooting at a moving target.

So kudos for leading that project :)

------
unicornporn
OK. I just realized this does something really cool. I've been troubled with
1080p videos as they no longer contain audio. They're separated and YT uses
DASH to join the audio+video stream.

youtube-dl seems to solve this: [https://github.com/rg3/youtube-
dl/issues/2165](https://github.com/rg3/youtube-dl/issues/2165)

------
shmerl
I just use quvi for that.

Example:

    
    
        quvi -vm --format $format "$url" --exec 'wget %u -O %t.%e'
    

instead of $format put any format that the video supports. To query them, use:

    
    
        quvi --query-formats "$url"
    

So it's going to be something like:

    
    
        quvi -vm --format fmt43_360p "$url" --exec 'wget %u -O %t.%e'
    

And to extract audio from the result you can use:

    
    
        avconv -i something.webm -vn -acodec copy something.ogg
    

Youtube however is switching away from fixed video files to separate streams
to be used with MSE. You can note that higher resolution video is not
available the old way. So downloading that won't be so straightforward.

~~~
ivank
youtube-dl supports muxing the separate video and audio streams from YouTube.
You just need a recent ffmpeg/avconv and youtube-dl -f bestvideo+bestaudio.

~~~
unicornporn
This is way cool as YouTube separates video and audio streams for 1080p (and
up) and then joins them with DASH.

------
doh
If you don't want to install anything, just use
[http://savedeo.com](http://savedeo.com) for almost any video or
[http://auderio.com](http://auderio.com) for Music from Youtube

~~~
raminassemi
Thanks, been using listentoyoutube.com but auderio.com is definitely better
(less annoying popup stuff + required clicks)

~~~
doh
And way faster :)

------
ansgri
How does it compare to get_flash_videos, which is available in Ubuntu
repository? [https://code.google.com/p/get-flash-
videos/](https://code.google.com/p/get-flash-videos/)

~~~
cogburnd02
get-flash-videos supports Hulu; I've been meaning to try it out [1] because
flash is Satan's anus. But I'd still keep youtube-dl for downloading &
converting YouTube videos.

[1] [https://gitorious.org/get-flash-videos-
plugins/pages/Hulu](https://gitorious.org/get-flash-videos-plugins/pages/Hulu)

------
chris_wot
Is there a way of bypassing geoblocking via youtube-dl directly?

~~~
spindritf
Well, you can get a cheap VPS in the US, or UK, or wherever the content is
available, and run youtube-dl there. You can also use a proxy[1].
Unfortunately, I think socks proxies are not supported yet[1].

[1] [https://rg3.github.io/youtube-
dl/documentation.html#d5](https://rg3.github.io/youtube-
dl/documentation.html#d5)

[2] [https://github.com/rg3/youtube-
dl/issues/402](https://github.com/rg3/youtube-dl/issues/402)

------
ketralnis
There are lots of projects to do this, and this one has been around for quite
some time. Is there any context as to why to post this now?

~~~
chm
If it's on the front page, some people have upvoted it.

Take a look at the "new" section!

------
hit8run
Till now I didn't know that other Sites are supported :D wow really impressive
site support! Thx for maintaining this nice tool :)

------
HaseebR7
I've used this one for so many things and it's awesome.

I've downloaded a whole youtube channel, downloaded videos as mp3's and what
not.

I have couple of aliases set in my .zshrc too :)

mp3dl() { youtube-dl --extract-audio --audio-format mp3 $1 }

root@haseebr7 ~ mp3dl <youtube_video_url>

and bam i have the mp3 download. I no longer have to visit shitty ad infested
websites to do these kind of things.

~~~
samstave
I do the same, but have ethe -K option also whch keeps the original DLd video.

------
sage_joch
It seems like this functionality should be part of YouTube itself, at least as
an option settable by the uploader.

------
Nux
youtube-dl rocks. One of my favourite features: youtube-dl -F

------
clarry
Yget is an alternative I've found to be more reliable. It's just for youtube
though, and doesn't support all the things (such as bypassing age
restrictions).

[http://repo.hu/projects/yget/](http://repo.hu/projects/yget/)

~~~
tripzilch
How is it more reliable?

~~~
clarry
Back when I used youtube-dl, it seemed like Google changed something about
Youtube every couple months and youtube-dl would break. Yget survived many
more of these changes.

Getting youtube-dl to run has been a pain for some reason, for example I
always seem not to have the right version of Python available. Yget doesn't
depend on such volatile tools.

------
RVuRnvbM2e
This appears to be the only option for Free Software access to soundcloud.com.

~~~
janerik
It's easy to just throw the streams of Soundcloud songs against whatever music
player you have at hand. MPD even has a playlist plugin, which correctly
handles basic soundcloud.com urls and handles all the API stuff for you.

------
gprasanth
On OS X, you can use afplay(/usr/bin/afplay) to play those downloaded videos'
music(in a headless player). This is pretty useful if you listen to youtube
music at work.

------
pimlottc
If I can lazyweb on this for a moment, is there a good script out there that
can use this to sync/download your entire watch later queue?

~~~
phihag_
youtube-dl can do that out of the box, try

youtube-dl --username pimlottc :ytwatchlater

If you get a problem, please file a bug report at [https://yt-
dl.org/bug](https://yt-dl.org/bug) . Thanks!

------
wonjun
I really like this tool and it has been very reliable for me so far. Thanks
for sharing the code.

------
soyuka
I'm just using [https://github.com/np1/mps-
youtube](https://github.com/np1/mps-youtube)

------
chris_wot
Oh man, I had that ages ago and used it frequently! It stopped working, if
this is working again that's awesome :-)

~~~
coldtea
You should update it often, as internal formats, urls, options etc of the
sites change.

------
MrBra
What's so special about this?

~~~
polarix
Probably lots of hackers want to be freed from the bondage of youtube.com
while still retaining access to the wealth of content available there.

~~~
MrBra
? hence the "so special" in my question. There are plenty of these tools
already and it's been so for long time. As a hacker you should know. So again,
what's so special about this?

------
of
It would be nice if it supported Netflix. There's some difficulties with this,
but a discussion about it here: [https://github.com/rg3/youtube-
dl/issues/1564](https://github.com/rg3/youtube-dl/issues/1564)

------
notastartup
I just use chrome extension

