Compare commits
411 Commits
2010.02.13
...
2012.02.26
Author | SHA1 | Date | |
---|---|---|---|
c4105fa035 | |||
871dbd3c92 | |||
c9ed14e6d6 | |||
1ad85e5061 | |||
09fbc6c952 | |||
895ec266bb | |||
d85448f3bb | |||
99d46e8c27 | |||
4afdff39d7 | |||
661a807c65 | |||
6d58c4546e | |||
38ffbc0222 | |||
fefb166c52 | |||
dcb3c22e0b | |||
47a53c9e46 | |||
1413cd87eb | |||
c92e184f75 | |||
3906e6ce60 | |||
c7d3c3db0d | |||
d6639d05c2 | |||
633cf7cbad | |||
a5647b79ce | |||
ba5059dd66 | |||
bb8abbbbae | |||
561504fffa | |||
23e6b8adc8 | |||
3e0ea7d07a | |||
94fd3201b2 | |||
0b3f3e1ad9 | |||
a05d2a0c05 | |||
0b14e0b367 | |||
66e8777769 | |||
348486ced4 | |||
f1f300e629 | |||
dd17922afc | |||
40fd4cb86a | |||
9e9b75ae4d | |||
8abf76ddb9 | |||
c95da745bc | |||
0cd235eef6 | |||
77315556f1 | |||
c379c181e0 | |||
31a2ec2d88 | |||
b88a52504e | |||
a95567af99 | |||
849edab8ec | |||
b158a1d946 | |||
fa2672f9fc | |||
28e3614bc0 | |||
208e095f72 | |||
0ae7abe57c | |||
dc0a294a73 | |||
468c99257c | |||
af8e8d63f9 | |||
e092418d8b | |||
e33e3045c6 | |||
cb6568bf21 | |||
235b3ba479 | |||
5b3330e0cf | |||
aab771fbdf | |||
00f95a93f5 | |||
1724e7c461 | |||
3b98a5ddac | |||
8b59cc93d5 | |||
c3e4e7c182 | |||
38348005b3 | |||
208c4b9128 | |||
ec574c2c41 | |||
871be928a8 | |||
b20d4f8626 | |||
073d7a5985 | |||
40306424b1 | |||
ecb3bfe543 | |||
abeac45abe | |||
0fca93ac60 | |||
857e5f329a | |||
053419cd24 | |||
99e207bab0 | |||
0067bbe7a7 | |||
45aa690868 | |||
beb245e92f | |||
c424df0d2f | |||
87929e4b35 | |||
d76736fc5e | |||
0f9b77223e | |||
9f47175a40 | |||
a1a8713aad | |||
6501a06d46 | |||
8d89fbae5a | |||
7a2cf5455c | |||
7125a7ca8b | |||
54d47874f7 | |||
2761012f69 | |||
3de2a1e635 | |||
1eff9ac0c5 | |||
54f329fe93 | |||
9baa2ef53b | |||
6bde5972c3 | |||
36f6cb369b | |||
b845d58b04 | |||
efb113c736 | |||
3ce59dae88 | |||
f0b0caa3fa | |||
58384838c3 | |||
abb870d1ad | |||
daa982bc01 | |||
767414a292 | |||
7b417b388a | |||
44424ceee9 | |||
08a5b7f800 | |||
1cde6f1d52 | |||
2d8acd8039 | |||
67035ede49 | |||
eb6c37da43 | |||
2736595628 | |||
7b1a2bbe17 | |||
c25303c3d5 | |||
cc025e1226 | |||
eca1b76f01 | |||
366cbfb04a | |||
18bb3d1e35 | |||
10e7194db1 | |||
ef357c4bf2 | |||
5260e68f64 | |||
6a1ca41e17 | |||
c99dcbd2d6 | |||
da0db53a75 | |||
c52b01f326 | |||
36597dc40f | |||
9b4556c469 | |||
f3098c4d8a | |||
bdb3f7a769 | |||
afb5b55de6 | |||
c23cec29a3 | |||
e5b9fac281 | |||
08c1d0d3bc | |||
20e91e8375 | |||
f9c6878714 | |||
8c5dc3ad40 | |||
1d2e86aed9 | |||
a2f7e3a5bb | |||
f2a3a3522c | |||
b487ef0833 | |||
d0922f29a3 | |||
b90bcbe79e | |||
8236e85178 | |||
803abae206 | |||
50bdd8a9e7 | |||
34554a7ad4 | |||
93e1659586 | |||
b576abb457 | |||
f166bccc8f | |||
5a2ba45e09 | |||
e133e1213f | |||
454d6691d8 | |||
d793aebaed | |||
5991ddfd7a | |||
a88bc6bbd3 | |||
46c8c43266 | |||
fedf9f3902 | |||
0f862ea18c | |||
c8e30044b8 | |||
cec3a53cbd | |||
6fc5b0bb17 | |||
9b0a8bc198 | |||
e5e74ffb97 | |||
eb99a7ee5f | |||
50891fece7 | |||
ef53099e35 | |||
c0a10ca8dc | |||
8f88eb1fa7 | |||
447b1d7170 | |||
dbddab2799 | |||
802622ac1c | |||
e0e56865a0 | |||
eb11aaccbb | |||
d207e7cf88 | |||
36cf7bccde | |||
5fd5ce0838 | |||
6ae796b1ee | |||
9c3e23fb64 | |||
5f9f2b7396 | |||
4618f3da74 | |||
eb0387a848 | |||
fe6dc08b79 | |||
4f2a5e06da | |||
2c8d32de33 | |||
2b70537d7b | |||
6a4f0a114d | |||
5adcaa4385 | |||
51c8e53ffe | |||
4f9f96f646 | |||
5fb3df4aff | |||
7a9054ec79 | |||
2770590d5a | |||
e9cb9c2811 | |||
1cab2c6dcf | |||
86e709d3de | |||
8519c32d25 | |||
f3dc18d874 | |||
1293ce58ac | |||
0a3c8b6291 | |||
134cff47ab | |||
f137bef973 | |||
2bf94b3116 | |||
6bcd846b52 | |||
2fb47e073a | |||
05b4029662 | |||
33d507f1fe | |||
c44b9ee95e | |||
8126094cf1 | |||
0ac22e4f5a | |||
c31b124d7a | |||
47b8dab29e | |||
91e6a3855b | |||
5623100e43 | |||
6eb08fbf8b | |||
437d76c19a | |||
2152ee8601 | |||
a1cab7cead | |||
8b95c38707 | |||
c6b55a8d48 | |||
aded78d9e2 | |||
7745f5d881 | |||
18b7f87409 | |||
62a29bbf7b | |||
2fc31a4872 | |||
44c636df89 | |||
1e055db69c | |||
0ecedbdb03 | |||
43c0a396a2 | |||
00f3977f77 | |||
e26005adea | |||
4b0d9eed45 | |||
3efa45c3a2 | |||
2727dbf78d | |||
e3f7e05c27 | |||
da54ed4412 | |||
d8edbf3a93 | |||
a62db07f58 | |||
b58faab5e7 | |||
854cad639e | |||
cb25a0e30c | |||
377086af3d | |||
820eedcb50 | |||
da273188f3 | |||
1bd9258272 | |||
c076845454 | |||
afd233c05c | |||
3072fab115 | |||
87cbd21323 | |||
3b84a43076 | |||
2c8bedd12c | |||
1a3fe4212f | |||
c4cfbdf5a5 | |||
ef9f8451c8 | |||
9f5f960213 | |||
a4a590b5b1 | |||
7f69fd3b39 | |||
a7e5259c33 | |||
7cc3c6fd62 | |||
d119b54df6 | |||
8cc98b2358 | |||
f24c674b04 | |||
58b53721af | |||
f74e22ae28 | |||
16c73c2e51 | |||
5776c3295b | |||
9e0dd8692e | |||
5aba6ea4fe | |||
c5a088d341 | |||
92743d423a | |||
9e1ee3364a | |||
e0edf1e041 | |||
6025795d95 | |||
e30189021d | |||
09bd408c28 | |||
9f7963468b | |||
b940c84a24 | |||
0f7099a59b | |||
c02d8e4040 | |||
0f6b00b587 | |||
7b531c0be6 | |||
0d14e225fa | |||
0fe64c04f8 | |||
0d8d9877ad | |||
8cc42e7c1a | |||
1987c2325a | |||
aac3fe0f4a | |||
3fb2c487c0 | |||
d3975459d1 | |||
ccbd296bee | |||
e7cf18cb6b | |||
09cc744c90 | |||
a57ed21f6d | |||
975a91d0ac | |||
b905e5f583 | |||
ef4f4544a2 | |||
5c1327931a | |||
106d091e80 | |||
f83ae7816b | |||
f148ea4473 | |||
7d950ca1d6 | |||
d157d2597a | |||
e567ef93d8 | |||
27179cfdba | |||
6f0ff3bab9 | |||
a9806fd83d | |||
62cf7aaf9a | |||
a1f03c7b06 | |||
f8dc441430 | |||
010ebaf783 | |||
138b11f36e | |||
05df0c1d4a | |||
b04bb07c94 | |||
b620a5f811 | |||
b3a27b5217 | |||
5e596cac0a | |||
1e47d226e1 | |||
817e8f523f | |||
8cc4434116 | |||
893a13df55 | |||
c34e358456 | |||
a6a61601de | |||
e0c982c8d0 | |||
331ce0a05d | |||
80066952bc | |||
e08878f498 | |||
a949a3ae6b | |||
7df4635faf | |||
f79007e542 | |||
ac249f421f | |||
e86e9474bf | |||
bbd4bb037a | |||
5c44af1875 | |||
33407be7d6 | |||
8e686771af | |||
2933532c5b | |||
6b57e8c5ac | |||
c6c555cf8a | |||
db7e31b853 | |||
d67e097462 | |||
38ed13444a | |||
8a9f53bebf | |||
80cc23304f | |||
813962f85a | |||
109626fcc0 | |||
204c9398ab | |||
2962317dea | |||
268fb2bdd8 | |||
101e0d1e91 | |||
f95f29fd25 | |||
06f34701fe | |||
5ce7d172d7 | |||
2e3a32e4ac | |||
8190e3631b | |||
e4db6fd042 | |||
497cd3e68e | |||
460d8acbaa | |||
9bf7fa5213 | |||
73f4e7afba | |||
9715661c19 | |||
14912efbb7 | |||
96942e6224 | |||
df372a655f | |||
9e9647d9a1 | |||
8da0080d36 | |||
57edaa5bac | |||
823fcda12a | |||
f2413e6793 | |||
c833bb97dc | |||
7e2dd306fe | |||
dea147f78e | |||
08cf5cb80b | |||
4135fa4585 | |||
fd8ede223e | |||
2b06c33d19 | |||
ca6a11fa59 | |||
de3ed1f84a | |||
0b59bf4a5e | |||
896a6ea9e2 | |||
7031008c98 | |||
e616ec0ca6 | |||
2a7353b87a | |||
787f2a5d95 | |||
42e3546fb5 | |||
0228ee9788 | |||
131efd1ae0 | |||
2bebb386b8 | |||
7e58d56888 | |||
554bbdc48c | |||
37dfa1e0df | |||
4dd63be193 | |||
7d8d06122d | |||
9177ce4d8c | |||
ce5cafea40 | |||
ae3fc475eb | |||
d063db3810 | |||
6194531831 | |||
2ed1ddd0a0 | |||
eaf4a7288d | |||
6ba562b0e4 | |||
131bc7651a | |||
5caacaddc6 | |||
79f193e5d8 | |||
44e16fa17f | |||
d983524781 | |||
1392f3f52c | |||
43ab0ca432 | |||
31cbdaafd4 | |||
bd3cdf6dc4 |
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
*.pyc
|
||||||
|
*.pyo
|
||||||
|
*~
|
@ -1 +1 @@
|
|||||||
2010.02.13
|
2012.02.26
|
||||||
|
23
Makefile
Normal file
23
Makefile
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
default: update
|
||||||
|
|
||||||
|
update: compile update-readme update-latest
|
||||||
|
|
||||||
|
update-latest:
|
||||||
|
./youtube-dl.dev --version > LATEST_VERSION
|
||||||
|
|
||||||
|
update-readme:
|
||||||
|
@options=$$(COLUMNS=80 ./youtube-dl.dev --help | sed -e '1,/.*General Options.*/ d' -e 's/^\W\{2\}\(\w\)/### \1/') && \
|
||||||
|
header=$$(sed -e '/.*## OPTIONS/,$$ d' README.md) && \
|
||||||
|
footer=$$(sed -e '1,/.*## FAQ/ d' README.md) && \
|
||||||
|
echo "$${header}" > README.md && \
|
||||||
|
echo >> README.md && \
|
||||||
|
echo '## OPTIONS' >> README.md && \
|
||||||
|
echo "$${options}" >> README.md&& \
|
||||||
|
echo >> README.md && \
|
||||||
|
echo '## FAQ' >> README.md && \
|
||||||
|
echo "$${footer}" >> README.md
|
||||||
|
|
||||||
|
compile:
|
||||||
|
cp youtube_dl/__init__.py youtube-dl
|
||||||
|
|
||||||
|
.PHONY: default compile update update-latest update-readme
|
130
README.md
Normal file
130
README.md
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
# youtube-dl
|
||||||
|
|
||||||
|
## USAGE
|
||||||
|
youtube-dl [options] url [url...]
|
||||||
|
|
||||||
|
## DESCRIPTION
|
||||||
|
**youtube-dl** is a small command-line program to download videos from
|
||||||
|
YouTube.com and a few more sites. It requires the Python interpreter, version
|
||||||
|
2.x (x being at least 5), and it is not platform specific. It should work in
|
||||||
|
your Unix box, in Windows or in Mac OS X. It is released to the public domain,
|
||||||
|
which means you can modify it, redistribute it or use it however you like.
|
||||||
|
|
||||||
|
## OPTIONS
|
||||||
|
-h, --help print this help text and exit
|
||||||
|
--version print program version and exit
|
||||||
|
-U, --update update this program to latest version
|
||||||
|
-i, --ignore-errors continue on download errors
|
||||||
|
-r, --rate-limit LIMIT download rate limit (e.g. 50k or 44.6m)
|
||||||
|
-R, --retries RETRIES number of retries (default is 10)
|
||||||
|
--dump-user-agent display the current browser identification
|
||||||
|
--list-extractors List all supported extractors and the URLs they
|
||||||
|
would handle
|
||||||
|
|
||||||
|
### Video Selection:
|
||||||
|
--playlist-start NUMBER playlist video to start at (default is 1)
|
||||||
|
--playlist-end NUMBER playlist video to end at (default is last)
|
||||||
|
--match-title REGEX download only matching titles (regex or caseless
|
||||||
|
sub-string)
|
||||||
|
--reject-title REGEX skip download for matching titles (regex or
|
||||||
|
caseless sub-string)
|
||||||
|
--max-downloads NUMBER Abort after downloading NUMBER files
|
||||||
|
|
||||||
|
### Filesystem Options:
|
||||||
|
-t, --title use title in file name
|
||||||
|
-l, --literal use literal title in file name
|
||||||
|
-A, --auto-number number downloaded files starting from 00000
|
||||||
|
-o, --output TEMPLATE output filename template. Use %(stitle)s to get the
|
||||||
|
title, %(uploader)s for the uploader name,
|
||||||
|
%(autonumber)s to get an automatically incremented
|
||||||
|
number, %(ext)s for the filename extension,
|
||||||
|
%(upload_date)s for the upload date (YYYYMMDD), and
|
||||||
|
%% for a literal percent. Use - to output to
|
||||||
|
stdout.
|
||||||
|
-a, --batch-file FILE file containing URLs to download ('-' for stdin)
|
||||||
|
-w, --no-overwrites do not overwrite files
|
||||||
|
-c, --continue resume partially downloaded files
|
||||||
|
--no-continue do not resume partially downloaded files (restart
|
||||||
|
from beginning)
|
||||||
|
--cookies FILE file to read cookies from and dump cookie jar in
|
||||||
|
--no-part do not use .part files
|
||||||
|
--no-mtime do not use the Last-modified header to set the file
|
||||||
|
modification time
|
||||||
|
--write-description write video description to a .description file
|
||||||
|
--write-info-json write video metadata to a .info.json file
|
||||||
|
|
||||||
|
### Verbosity / Simulation Options:
|
||||||
|
-q, --quiet activates quiet mode
|
||||||
|
-s, --simulate do not download the video and do not write anything
|
||||||
|
to disk
|
||||||
|
--skip-download do not download the video
|
||||||
|
-g, --get-url simulate, quiet but print URL
|
||||||
|
-e, --get-title simulate, quiet but print title
|
||||||
|
--get-thumbnail simulate, quiet but print thumbnail URL
|
||||||
|
--get-description simulate, quiet but print video description
|
||||||
|
--get-filename simulate, quiet but print output filename
|
||||||
|
--get-format simulate, quiet but print output format
|
||||||
|
--no-progress do not print progress bar
|
||||||
|
--console-title display progress in console titlebar
|
||||||
|
-v, --verbose print various debugging information
|
||||||
|
|
||||||
|
### Video Format Options:
|
||||||
|
-f, --format FORMAT video format code
|
||||||
|
--all-formats download all available video formats
|
||||||
|
--prefer-free-formats prefer free video formats unless a specific one is
|
||||||
|
requested
|
||||||
|
--max-quality FORMAT highest quality format to download
|
||||||
|
-F, --list-formats list all available formats (currently youtube only)
|
||||||
|
|
||||||
|
### Authentication Options:
|
||||||
|
-u, --username USERNAME account username
|
||||||
|
-p, --password PASSWORD account password
|
||||||
|
-n, --netrc use .netrc authentication data
|
||||||
|
|
||||||
|
### Post-processing Options:
|
||||||
|
--extract-audio convert video files to audio-only files (requires
|
||||||
|
ffmpeg and ffprobe)
|
||||||
|
--audio-format FORMAT "best", "aac", "vorbis", "mp3", "m4a", or "wav";
|
||||||
|
best by default
|
||||||
|
--audio-quality QUALITY ffmpeg audio bitrate specification, 128k by default
|
||||||
|
-k, --keep-video keeps the video file on disk after the post-
|
||||||
|
processing; the video is erased by default
|
||||||
|
|
||||||
|
## FAQ
|
||||||
|
|
||||||
|
### Can you please put the -b option back?
|
||||||
|
|
||||||
|
Most people asking this question are not aware that youtube-dl now defaults to downloading the highest available quality as reported by YouTube, which will be 1080p or 720p in some cases, so you no longer need the -b option. For some specific videos, maybe YouTube does not report them to be available in a specific high quality format you''re interested in. In that case, simply request it with the -f option and youtube-dl will try to download it.
|
||||||
|
|
||||||
|
### I get HTTP error 402 when trying to download a video. What's this?
|
||||||
|
|
||||||
|
Apparently YouTube requires you to pass a CAPTCHA test if you download too much. We''re [considering to provide a way to let you solve the CAPTCHA](https://github.com/rg3/youtube-dl/issues/154), but at the moment, your best course of action is pointing a webbrowser to the youtube URL, solving the CAPTCHA, and restart youtube-dl.
|
||||||
|
|
||||||
|
### I have downloaded a video but how can I play it?
|
||||||
|
|
||||||
|
Once the video is fully downloaded, use any video player, such as [vlc](http://www.videolan.org) or [mplayer](http://www.mplayerhq.hu/).
|
||||||
|
|
||||||
|
### The links provided by youtube-dl -g are not working anymore
|
||||||
|
|
||||||
|
The URLs youtube-dl outputs require the downloader to have the correct cookies. Use the `--cookies` option to write the required cookies into a file, and advise your downloader to read cookies from that file.
|
||||||
|
|
||||||
|
### ERROR: no fmt_url_map or conn information found in video info
|
||||||
|
|
||||||
|
youtube has switched to a new video info format in July 2011 which is not supported by old versions of youtube-dl. You can update youtube-dl with `sudo youtube-dl --update`.
|
||||||
|
|
||||||
|
## COPYRIGHT
|
||||||
|
|
||||||
|
youtube-dl is released into the public domain by the copyright holders.
|
||||||
|
|
||||||
|
This README file was originally written by Daniel Bolton (<https://github.com/dbbolton>) and is likewise released into the public domain.
|
||||||
|
|
||||||
|
## BUGS
|
||||||
|
|
||||||
|
Bugs and suggestions should be reported at: <https://github.com/rg3/youtube-dl/issues>
|
||||||
|
|
||||||
|
Please include:
|
||||||
|
|
||||||
|
* Your exact command line, like `youtube-dl -t "http://www.youtube.com/watch?v=uHlDtZ6Oc3s&feature=channel_video_title"`. A common mistake is not to escape the `&`. Putting URLs in quotes should solve this problem.
|
||||||
|
* The output of `youtube-dl --version`
|
||||||
|
* The output of `python --version`
|
||||||
|
* The name and version of your Operating System ("Ubuntu 11.04 x64" or "Windows 7 x64" is usually enough).
|
6
devscripts/posix-locale.sh
Normal file
6
devscripts/posix-locale.sh
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
|
||||||
|
# source this file in your shell to get a POSIX locale (which will break many programs, but that's kind of the point)
|
||||||
|
|
||||||
|
export LC_ALL=POSIX
|
||||||
|
export LANG=POSIX
|
||||||
|
export LANGUAGE=POSIX
|
29
test/test_div.py
Normal file
29
test/test_div.py
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# Various small unit tests
|
||||||
|
|
||||||
|
import os,sys
|
||||||
|
sys.path.append(os.path.dirname(os.path.dirname(__file__)))
|
||||||
|
|
||||||
|
import youtube_dl
|
||||||
|
|
||||||
|
def test_simplify_title():
|
||||||
|
assert youtube_dl._simplify_title(u'abc') == u'abc'
|
||||||
|
assert youtube_dl._simplify_title(u'abc_d-e') == u'abc_d-e'
|
||||||
|
|
||||||
|
assert youtube_dl._simplify_title(u'123') == u'123'
|
||||||
|
|
||||||
|
assert u'/' not in youtube_dl._simplify_title(u'abc/de')
|
||||||
|
assert u'abc' in youtube_dl._simplify_title(u'abc/de')
|
||||||
|
assert u'de' in youtube_dl._simplify_title(u'abc/de')
|
||||||
|
assert u'/' not in youtube_dl._simplify_title(u'abc/de///')
|
||||||
|
|
||||||
|
assert u'\\' not in youtube_dl._simplify_title(u'abc\\de')
|
||||||
|
assert u'abc' in youtube_dl._simplify_title(u'abc\\de')
|
||||||
|
assert u'de' in youtube_dl._simplify_title(u'abc\\de')
|
||||||
|
|
||||||
|
assert youtube_dl._simplify_title(u'ä') == u'ä'
|
||||||
|
assert youtube_dl._simplify_title(u'кириллица') == u'кириллица'
|
||||||
|
|
||||||
|
# Strip underlines
|
||||||
|
assert youtube_dl._simplify_title(u'\'a_') == u'a'
|
4093
youtube-dl
4093
youtube-dl
File diff suppressed because it is too large
Load Diff
6
youtube-dl.dev
Executable file
6
youtube-dl.dev
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import youtube_dl
|
||||||
|
|
||||||
|
youtube_dl.main()
|
4648
youtube_dl/__init__.py
Executable file
4648
youtube_dl/__init__.py
Executable file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user