mirror of
https://gitlab.com/ytdl-org/youtube-dl.git
synced 2026-04-27 00:00:04 -04:00
Compare commits
521 Commits
2009.02.07
...
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 | |||
| 8cc468de75 | |||
| 31bcb48001 | |||
| c201ebc915 | |||
| ce9c6a3097 | |||
| 4cfeb46544 | |||
| 490fd7aea7 | |||
| c05fc6a345 | |||
| 91bce611c7 | |||
| 1c1821f8eb | |||
| 60f8049d05 | |||
| 49c0028a7a | |||
| f1b4bee09d | |||
| a04e80a481 | |||
| fe788f2c6f | |||
| 75a4cf3c97 | |||
| 0487b407a1 | |||
| a692ca7c49 | |||
| 9c457d2a20 | |||
| c39c05cdd7 | |||
| 29f0756805 | |||
| d9bc015b3c | |||
| 4bec29ef4b | |||
| ab1f697827 | |||
| 583c714fde | |||
| 850ab76560 | |||
| f5a5bec351 | |||
| f94b636c3e | |||
| 0833f1eb83 | |||
| ad0525b3e6 | |||
| 30edbf89e4 | |||
| eae2666cb4 | |||
| 2a04438c7c | |||
| dd24ff44ab | |||
| 304a4d85ea | |||
| d899774377 | |||
| fade05990c | |||
| e5b1604882 | |||
| 0c8beb43f2 | |||
| 71b7300e63 | |||
| 8497c36d5a | |||
| 110cd3462e | |||
| 18963a36b0 | |||
| df1ceb1fd9 | |||
| 7eb0e89742 | |||
| 8b07dec5f6 | |||
| 113e5266cc | |||
| 55e7c75e12 | |||
| ff21a710ae | |||
| 7374795552 | |||
| 0cd61126fc | |||
| e1f18b8a84 | |||
| 6a0015a7e0 | |||
| 7db85b2c70 | |||
| f76c2df64e | |||
| daa88ccc2e | |||
| eb5d184157 | |||
| 5745bfdcdc | |||
| 320becd692 | |||
| 968aa88438 | |||
| cbfff4db63 | |||
| 781daeabdb | |||
| 705804f5d1 | |||
| 1d50e3d153 | |||
| d69a1c9189 | |||
| 488f619471 | |||
| 097ba9472b | |||
| 554f3e284c | |||
| cab60d710a | |||
| 152edc0d4c | |||
| b74c859d0f | |||
| 0e54320009 | |||
| 43f35682e9 | |||
| ad274509aa | |||
| d09744d055 | |||
| 1c76e23e0f | |||
| 42bcd27d3b | |||
| 2740c509b3 | |||
| 7b7759f5a4 | |||
| 8d2c83eda5 | |||
| 2f11508ada | |||
| b65740e474 | |||
| a825f0ca83 | |||
| 27c3383e2d | |||
| dbccb6cd84 | |||
| 98164eb3b9 | |||
| 2851b2ca18 | |||
| 6f21f68629 | |||
| 147753eb33 | |||
| 3aaf887e98 | |||
| 9bf386d74b | |||
| 2f4d18a9f7 | |||
| b0eddb2eb4 | |||
| 9cee6d9035 | |||
| c8619e0163 | |||
| 257453b92b | |||
| fd9288c315 | |||
| 1db4ff6054 | |||
| 763826cf2c | |||
| af6a92f4c9 | |||
| f995f7127c | |||
| e54930cf71 | |||
| c6b311c524 | |||
| 79e75f66c8 | |||
| 053e77d6ed | |||
| d0a9affb46 | |||
| 76800042fd | |||
| 7ab2043c9c | |||
| 3e703dd1cd | |||
| cc10940385 | |||
| 5121ef2071 |
@@ -0,0 +1,3 @@
|
||||
*.pyc
|
||||
*.pyo
|
||||
*~
|
||||
@@ -0,0 +1 @@
|
||||
2012.02.26
|
||||
@@ -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
|
||||
@@ -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).
|
||||
@@ -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
|
||||
@@ -1,15 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
import hashlib
|
||||
import subprocess
|
||||
|
||||
template = file('index.html.in', 'r').read()
|
||||
version = subprocess.Popen(['./youtube-dl', '--version'], stdout=subprocess.PIPE).communicate()[0].strip()
|
||||
data = file('youtube-dl', 'rb').read()
|
||||
md5sum = hashlib.md5(data).hexdigest()
|
||||
sha1sum = hashlib.sha1(data).hexdigest()
|
||||
sha256sum = hashlib.sha256(data).hexdigest()
|
||||
template = template.replace('@PROGRAM_VERSION@', version)
|
||||
template = template.replace('@PROGRAM_MD5SUM@', md5sum)
|
||||
template = template.replace('@PROGRAM_SHA1SUM@', sha1sum)
|
||||
template = template.replace('@PROGRAM_SHA256SUM@', sha256sum)
|
||||
file('index.html', 'w').write(template)
|
||||
-229
@@ -1,229 +0,0 @@
|
||||
<!DOCTYPE html
|
||||
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
|
||||
<title>youtube-dl: Download videos from YouTube.com</title>
|
||||
<style type="text/css"><!--
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
font-size: small;
|
||||
}
|
||||
h1 {
|
||||
text-align: center;
|
||||
text-decoration: underline;
|
||||
color: #006699;
|
||||
}
|
||||
h2 {
|
||||
color: #006699;
|
||||
}
|
||||
p {
|
||||
text-align: justify;
|
||||
margin-left: 5%;
|
||||
margin-right: 5%;
|
||||
}
|
||||
ul {
|
||||
margin-left: 5%;
|
||||
margin-right: 5%;
|
||||
list-style-type: square;
|
||||
}
|
||||
li {
|
||||
margin-bottom: 0.5ex;
|
||||
}
|
||||
.smallnote {
|
||||
font-size: x-small;
|
||||
text-align: center;
|
||||
}
|
||||
--></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>youtube-dl: Download videos from YouTube.com</h1>
|
||||
|
||||
<p class="smallnote">(and more...)</p>
|
||||
|
||||
<h2>What is it?</h2>
|
||||
|
||||
<p><em>youtube-dl</em> is a small command-line program to download videos
|
||||
from YouTube.com. It requires the <a href="http://www.python.org/">Python
|
||||
interpreter</a>, version 2.4 or later, and it's not platform specific.
|
||||
It should work in your Unix box, in Windows or in Mac OS X. The latest version
|
||||
is <strong>@PROGRAM_VERSION@</strong>. It's released to the public domain,
|
||||
which means you can modify it, redistribute it or use it however you like.</p>
|
||||
|
||||
<p>I'll try to keep it updated if YouTube.com changes the way you access
|
||||
their videos. After all, it's a simple and short program. However, I can't
|
||||
guarantee anything. If you detect it stops working, check for new versions
|
||||
and/or inform me about the problem, indicating the program version you
|
||||
are using. If the program stops working and I can't solve the problem but
|
||||
you have a solution, I'd like to know it. If that happens and you feel you
|
||||
can maintain the program yourself, tell me. My contact information is
|
||||
at <a href="http://freshmeat.net/~rg3/">freshmeat.net</a>.</p>
|
||||
|
||||
<p>Thanks for all the feedback received so far. I'm glad people find my
|
||||
program useful.</p>
|
||||
|
||||
<h2>Usage instructions</h2>
|
||||
|
||||
<p>In Windows, once you have installed the Python interpreter, save the
|
||||
program with the <em>.py</em> extension and put it somewhere in the PATH.
|
||||
Try to follow the
|
||||
<a href="http://rg03.wordpress.com/youtube-dl-under-windows-xp/">guide to
|
||||
install youtube-dl under Windows XP</a>.</p>
|
||||
|
||||
<p>In Unix, download it, give it execution permission and copy it to one
|
||||
of the PATH directories (typically, <em>/usr/local/bin</em>).</p>
|
||||
|
||||
<p>After that, you should be able to call it from the command line as
|
||||
<em>youtube-dl</em> or <em>youtube-dl.py</em>. I will use <em>youtube-dl</em>
|
||||
in the following examples. Usage instructions are easy. Use <em>youtube-dl</em>
|
||||
followed by a video URL or identifier. Example: <em>youtube-dl
|
||||
"http://www.youtube.com/watch?v=foobar"</em>. The video will be saved
|
||||
to the file <em>foobar.flv</em> in that example. As YouTube.com
|
||||
videos are in Flash Video format, their extension should be <em>flv</em>.
|
||||
In Linux and other unices, video players using a recent version of
|
||||
<em>ffmpeg</em> can play them. That includes MPlayer, VLC, etc. Those two
|
||||
work under Windows and other platforms, but you could also get a
|
||||
specific FLV player of your taste.</p>
|
||||
|
||||
<p>If you try to run the program and you receive an error message containing the
|
||||
keyword <em>SyntaxError</em> near the end, it means your Python interpreter
|
||||
is too old.</p>
|
||||
|
||||
<h2>More usage tips</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>You can change the file name of the video using the -o option, like in
|
||||
<em>youtube-dl -o vid.flv "http://www.youtube.com/watch?v=foobar"</em>.
|
||||
Read the <a href="#otpl">Output template</a> section for more details on
|
||||
this.</li>
|
||||
|
||||
<li>Some videos require an account to be downloaded, mostly because they're
|
||||
flagged as mature content. You can pass the program a username and password
|
||||
for a YouTube.com account with the -u and -p options, like <em>youtube-dl
|
||||
-u myusername -p mypassword "http://www.youtube.com/watch?v=foobar"</em>.</li>
|
||||
|
||||
<li>The account data can also be read from the user .netrc file by indicating
|
||||
the -n or --netrc option. The machine name is <em>youtube</em> in that
|
||||
case.</li>
|
||||
|
||||
<li>The <em>simulate mode</em> (activated with -s or --simulate) can be used
|
||||
to just get the real video URL and use it with a download manager if you
|
||||
prefer that option.</li>
|
||||
|
||||
<li>The <em>quiet mode</em> (activated with -q or --quiet) can be used to
|
||||
supress all output messages. This allows, in systems featuring /dev/stdout
|
||||
and other similar special files, outputting the video data to standard output
|
||||
in order to pipe it to another program without interferences.</li>
|
||||
|
||||
<li>The program can be told to simply print the final video URL to standard
|
||||
output using the -g or --get-url option.</li>
|
||||
|
||||
<li>In a similar line, the -e or --get-title option tells the program to print
|
||||
the video title.</li>
|
||||
|
||||
<li>The default filename is <em>video_id.flv</em>. But you can also use the
|
||||
video title in the filename with the -t or --title option, or preserve the
|
||||
literal title in the filename with the -l or --literal option.</li>
|
||||
|
||||
<li>You can make the program append <em>&fmt=something</em> to the URL
|
||||
by using the -f or --format option. This makes it possible to download high
|
||||
quality versions of the videos when available.</li>
|
||||
|
||||
<li>The -b or --best-quality option is an alias for -f 18.</li>
|
||||
|
||||
<li>The -m or --mobile-version option is an alias for -f 17.</li>
|
||||
|
||||
<li>Normally, the program will stop on the first error, but you can tell it
|
||||
to attempt to download every video with the -i or --ignore-errors option.</li>
|
||||
|
||||
<li>The -a or --batch-file option lets you specify a file to read URLs from.
|
||||
The file must contain one URL per line.</li>
|
||||
|
||||
<li>The program can be told not to overwrite existing files using the -w or
|
||||
--no-overwrites option.</li>
|
||||
|
||||
<li>For YouTube, you can also use the URL of a playlist, and it will download
|
||||
all the videos in that playlist.</li>
|
||||
|
||||
<li>For YouTube, you can also use the special word <em>ytsearch</em> to
|
||||
download search results. With <em>ytsearch</em> it will download the
|
||||
first search result. With <em>ytsearchN</em>, where N is a number, it
|
||||
will download the first N results. With <em>ytsearchall</em> it will
|
||||
download every result for that search. In most systems you'll need to
|
||||
use quotes for multiple words. Example: <em>youtube-dl "ytsearch3:cute
|
||||
kittens"</em>.
|
||||
|
||||
<li><em>youtube-dl</em> honors the <em>http_proxy</em> environment variable
|
||||
if you want to use a proxy. Set it to something like
|
||||
<em>http://proxy.example.com:8080</em>, and do not leave the <em>http://</em>
|
||||
prefix out.</li>
|
||||
|
||||
<li>You can get the program version by calling it as <em>youtube-dl
|
||||
-v</em> or <em>youtube-dl --version</em>.</li>
|
||||
|
||||
<li>For usage instructions, use <em>youtube-dl -h</em> or <em>youtube-dl
|
||||
--help.</em></li>
|
||||
|
||||
<li>You can cancel the program at any time pressing Ctrl+C. It may print
|
||||
some error lines saying something about <em>KeyboardInterrupt</em>.
|
||||
That's ok.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Download it</h2>
|
||||
|
||||
<p>Note that if you directly click on these hyperlinks, your web browser will
|
||||
most likely display the program contents. It's usually better to
|
||||
right-click on it and choose the appropriate option, normally called <em>Save
|
||||
Target As</em> or <em>Save Link As</em>, depending on the web browser you
|
||||
are using.</p>
|
||||
|
||||
<p><a href="youtube-dl">@PROGRAM_VERSION@</a></p>
|
||||
<ul>
|
||||
<li><strong>MD5</strong>: @PROGRAM_MD5SUM@</li>
|
||||
<li><strong>SHA1</strong>: @PROGRAM_SHA1SUM@</li>
|
||||
<li><strong>SHA256</strong>: @PROGRAM_SHA256SUM@</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="otpl">Output template</h2>
|
||||
|
||||
<p>The -o option allows users to indicate a template for the output file names.
|
||||
The basic usage is not to set any template arguments when downloading a single
|
||||
file, like in <em>youtube-dl -o funny_video.flv 'http://some/video'</em>.
|
||||
However, it may contain special sequences that will be replaced when
|
||||
downloading each video. The special sequences have the format
|
||||
<strong>%(NAME)s</strong>. To clarify, that's a percent symbol followed by a
|
||||
name in parenthesis, followed by a lowercase S. Allowed names are:</p>
|
||||
|
||||
<ul>
|
||||
<li><em>id</em>: The sequence will be replaced by the video identifier.</li>
|
||||
<li><em>url</em>: The sequence will be replaced by the video URL.</li>
|
||||
<li><em>uploader</em>: The sequence will be replaced by the nickname of the
|
||||
person who uploaded the video.</li>
|
||||
<li><em>title</em>: The sequence will be replaced by the literal video
|
||||
title.</li>
|
||||
<li><em>stitle</em>: The sequence will be replaced by a simplified video
|
||||
title, restricted to alphanumeric characters and dashes.</li>
|
||||
<li><em>ext</em>: The sequence will be replaced by the appropriate
|
||||
extension (like <em>flv</em> or <em>mp4</em>).</li>
|
||||
</ul>
|
||||
|
||||
<p>As you may have guessed, the default template is <em>%(id)s.%(ext)s</em>.
|
||||
When some command line options are used, it's replaced by other templates like
|
||||
<em>%(title)s-%(id)s.%(ext)s</em>. You can specify your own.</p>
|
||||
|
||||
<h2>Authors</h2>
|
||||
|
||||
<ul>
|
||||
<li>Ricardo Garcia Gonzalez: program core, YouTube.com InfoExtractor,
|
||||
metacafe.com InfoExtractor and YouTube playlist InfoExtractor.</li>
|
||||
<li>Danny Colligan: YouTube search InfoExtractor, ideas and patches.</li>
|
||||
<li>Many other people contributing patches, code, ideas and kind messages. Too
|
||||
many to be listed here. You know who you are. Thank you very much.</li>
|
||||
</ul>
|
||||
|
||||
<p class="smallnote">Copyright © 2006-2007 Ricardo Garcia Gonzalez</p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -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'
|
||||
+4075
-481
File diff suppressed because it is too large
Load Diff
Executable
+6
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import youtube_dl
|
||||
|
||||
youtube_dl.main()
|
||||
Executable
+4648
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user