Compare commits

...

281 Commits

Author SHA1 Message Date
b58faab5e7 Bump version number 2011-02-26 00:47:29 +01:00
377086af3d Use '--' to separate the file argument from the options when calling ffmpeg
This is to avoid a potential issue if the file name begins with a hyphen since ffmpeg will interpret it as an option
2011-02-25 23:24:58 +02:00
820eedcb50 Bump version number 2011-02-25 21:54:16 +01:00
da273188f3 Catch possible exceptions when running ffprobe 2011-02-25 21:53:26 +01:00
1bd9258272 Fix stderr print when ffmpeg fails 2011-02-25 22:30:22 +02:00
c076845454 Bump version number 2011-02-25 20:12:32 +01:00
afd233c05c Update User-Agent string 2011-02-25 20:11:53 +01:00
3072fab115 Add an audio extracting PostProcessor using ffmpeg (closes #2) 2011-02-25 19:06:58 +01:00
87cbd21323 Fix date parsing for YouTube (patch by Drake Wyrm) 2011-02-25 19:05:35 +01:00
ef9f8451c8 Add Gergely Imreh to the author list 2011-02-20 18:01:57 +01:00
9f5f960213 Facebook info extractor
This IE should be full-featured.

Public videos can be downloaded without login, e.g:
https://www.facebook.com/video/video.php?v=696729990595

Private videos need login, and subject to login rate limit of
a couple of tries / minute.
2011-02-20 23:57:50 +08:00
7cc3c6fd62 Fix possible missing parameter in playlist url extraction
The "playlist_prefix" parameter was missing when parsing playlist urls
that match the recently added format, e.g.:
http://www.youtube.com/user/stanforduniversity#g/c/9D558D49CA734A02
For these URLs (basically, for every playlist type so far, except the
artist list) playlist_prefix has to be equal to "p" for correct
exctraction.
2011-02-13 19:02:56 +08:00
d119b54df6 Support more common YouTube playlist URLs 2011-02-12 20:19:20 +01:00
f74e22ae28 Enable artist playlists in YoutubePlaylistIE
Artist playlist pages have different format compared to user playlists,
thus more format checking is needed to construct the correct URL.

From the artist playlist this method downloads all listed below the
"Videos by [Artist Name]" header, plus usually there's one more
video on the side, titled "Youtube Mix for [Artist Name]", which
has a link format that currently cannot be distinguished from the other
videos in the list.
2011-01-31 19:00:51 +08:00
16c73c2e51 Fix SyntaxError problem (oops) 2011-01-30 13:03:15 +01:00
5776c3295b Update User-Agent string 2011-01-30 12:59:18 +01:00
9e0dd8692e Bump version number 2011-01-30 12:58:01 +01:00
5aba6ea4fe Add YoutubeUserIE (code courtesy of Paweł Paprota) 2011-01-29 11:55:20 +01:00
6025795d95 Split some long lines 2011-01-28 19:59:47 +01:00
e30189021d Make the file timestamp feature optional 2011-01-28 19:59:18 +01:00
09bd408c28 Set downloaded file's time stamp from last-modified header
This file stamp setting is very relaxed. If there's any problem
along the way (no last-modified header, bad time string format,
no time set privileges,...) or if nothing is downloaded (e.g. using
resumed download but the file was already complete) then nothing
is done.
2011-01-28 09:46:06 +08:00
9f7963468b New option --get-filename to print output filename
When using youtube-dl within scripts, it is very useful to know
what will be the final output filename with all the title settings and
filename templates applied. Add option to the quiet mode operations
to print that info.

For this I had to move the filename-generation into its own function.
As much as I can tell it should work almost always well, ie. not to
break things if one not actually interested in the title, like in
case of other forced printing. That is, unless there's an invalid
system charset or the user specified a wrong output template. In that
case probably could be assumed that the user does have a problem
(the former) or did want to mess with the filename (the latter).

Signed-off-by: Gergely Imreh <imrehg@gmail.com>
2011-01-26 09:15:00 +08:00
b940c84a24 Support for youtube.com/embed/XXXXX URLs (closes #63) 2011-01-25 19:00:45 +01:00
0f7099a59b Fix omission of Witold Baryluk as the Dailymotion InfoExtractor author 2011-01-21 18:18:48 +01:00
c02d8e4040 Fix dailymotion support (closes #60) 2011-01-21 18:16:33 +01:00
0f6b00b587 Improve addinfourl_wrapper for compatibility with older Python versions 2011-01-20 20:36:42 +01:00
7b531c0be6 Wrap call to addinfourl for compatibility with Python 2.4 2011-01-18 20:52:37 +01:00
0d14e225fa Omit code argument in addinfourl for Python 2.4 2011-01-18 19:16:42 +01:00
0fe64c04f8 Make the self-updating function a bit more robust 2011-01-12 21:07:56 +01:00
0d8d9877ad Add support for embedded YouTube playist URLs (closes #54) 2011-01-12 20:22:37 +01:00
8cc42e7c1a Fix "unable to rename file" Windows error (closes #56) 2011-01-12 20:21:43 +01:00
1987c2325a Add proper support for "gzip" and "deflate" encodings 2011-01-12 20:20:37 +01:00
aac3fe0f4a Fix bug in regular expression for youtu.be links 2011-01-10 12:54:14 +01:00
3fb2c487c0 Add --no-part option (closes #48) 2011-01-07 10:23:18 +01:00
d3975459d1 Remove trailing whitespace 2011-01-07 10:22:01 +01:00
ccbd296bee Added --console-title to display download progress in console window title.
This uses SetConsoleTitle() Win32 API for Windows Console, and Xterm escape sequence otherwise.
2011-01-04 17:32:35 +02:00
e7cf18cb6b Add --dump-user-agent option (patch provided by Benjamin Johnson) 2011-01-03 11:47:23 +01:00
09cc744c90 Print new line before a few error messages 2011-01-03 11:22:49 +01:00
a57ed21f6d Request page compression by default, like Firefox does 2010-12-16 07:09:58 +01:00
975a91d0ac Take into account resume_len when calculating speed and ETA 2010-12-15 21:42:11 +01:00
b905e5f583 Fix erroneous "content too short" error message 2010-12-12 19:21:09 +01:00
ef4f4544a2 Remove deprecated -b option and nonworking -m option (closes #39) 2010-12-11 11:35:45 +01:00
5c1327931a Stop attempting to use get_video and detect missing formats ourselves 2010-12-11 11:34:10 +01:00
106d091e80 Do not use 0% as the starting point in resumed downloads (closes #40) 2010-12-11 11:32:33 +01:00
f83ae7816b Fix problem when requesting an existing format explicitly with -f 2010-12-09 19:57:39 +01:00
f148ea4473 Bump version number 2010-12-09 19:37:07 +01:00
7d950ca1d6 Improve temporary filename handling of special cases 2010-12-09 19:33:04 +01:00
d157d2597a Fix YoutubeIE after recent YouTube changes (closes #34) 2010-12-09 19:22:32 +01:00
e567ef93d8 Add Vasyl' Vavrychuk to the list of authors 2010-12-08 11:04:22 +01:00
27179cfdba Implemented depositfiles.com support 2010-12-08 11:18:33 +02:00
6f0ff3bab9 Fixed failure of os.rename after receiving file finished due to file not being closed.
Following error happen while at the end of _do_download called try_rename
WindowsError: [Error 32] The process cannot access the file because it is being used by another process
2010-12-05 20:57:46 +02:00
a9806fd83d report_extraction was never called for GenericIE 2010-12-05 20:56:27 +02:00
62cf7aaf9a Use a temporary filename to download files 2010-12-04 10:38:53 +01:00
a1f03c7b06 Reworked 'upload_date' code for output sequence in YoutubeIE.
Reverted to previous version of 'upload_date' and fixed
a mistake that prevented the code from working properly.
2010-11-30 18:51:00 +02:00
f8dc441430 Bump version number 2010-11-19 19:41:09 +01:00
010ebaf783 Update User-Agent string 2010-11-19 19:40:18 +01:00
138b11f36e Rework upload date mechanism after detecting problems in several tests 2010-11-19 19:31:26 +01:00
05df0c1d4a Restore file permissions 2010-11-19 18:37:07 +01:00
b04bb07c94 Merge branch 'master' of https://github.com/psi-neamf/youtube-dl into psi-neamf 2010-11-19 18:30:58 +01:00
b620a5f811 Correctly parse the player URL in RTMP downloads (closes #11)
Fixed several problems courtesy of jamiejones:

The parsing for the SWF url was wrong (the "//" are now escaped and the
initial .*match needs to be 'ungreedy'), so the -W setting to rtmpdump
was not set, causing the decryption of the video to be wrong.

Finally, add "&amp;has_verified=1" to the fetch of the HMTL page to
allow fetching of age-restricted videos.
2010-11-17 20:43:27 +01:00
b3a27b5217 Added 'uploaddate' output sequence for YoutubeIE. 2010-11-17 20:55:30 +02:00
5e596cac0a Minor help text correction 2010-11-06 22:13:59 +01:00
1e47d226e1 Added command line switch -A --auto-number
Numbering downloaded URLs was implemented with %(ord)s in the
output template. It has been replaced with the %(autonumber)s
sequence and is now also available as a command line switch.
2010-11-06 22:34:22 +02:00
817e8f523f Allow comments in batch file. 2010-11-06 22:21:45 +02:00
8cc4434116 Add playlist-end option (courtesy of Nevar Angelo) 2010-11-04 23:19:09 +01:00
893a13df55 Modify autoupdate URLs to match the ones from github.com 2010-10-31 15:46:58 +01:00
c34e358456 Bump version number 2010-10-31 11:28:45 +01:00
a6a61601de Update User-Agent string 2010-10-31 11:28:45 +01:00
e0c982c8d0 Load cookies if the cookie file exists when starting the program 2010-10-31 11:28:45 +01:00
331ce0a05d Use stderr for output when the output file is "-" (fixes issue #216) 2010-10-31 11:28:45 +01:00
80066952bc Add new --cookies option to be able to save cookies to disk (fixes issue #208) 2010-10-31 11:28:45 +01:00
e08878f498 Set stdout to binary mode under Windows (fixes issue #218) 2010-10-31 11:28:45 +01:00
a949a3ae6b Support "https" in YouTube video URLs (fixes issue #215) 2010-10-31 11:28:45 +01:00
7df4635faf Use HTTPS for the login URL (fixes issue #163) 2010-10-31 11:28:45 +01:00
f79007e542 Bump version number 2010-10-31 11:28:41 +01:00
ac249f421f Retry on any 5xx server error 2010-10-31 11:28:41 +01:00
e86e9474bf Treat HTTP error 500 the same way as 503 (fixes issue #209) 2010-10-31 11:28:41 +01:00
bbd4bb037a Support the -nocookie suffix in youtube domain name (fixes issue #200) 2010-10-31 11:28:41 +01:00
5c44af1875 Do not print file name on warning message (fixes issue #197) 2010-10-31 11:28:41 +01:00
33407be7d6 Fix "unable to extract uploader nickname" error with Dailymotion 2010-10-31 11:28:41 +01:00
8e686771af Decode the reason given on YouTube errors to avoid crashes (fixes issue #193) 2010-10-31 11:28:41 +01:00
2933532c5b Allow the #! notation for YouTube URLs found in many links in their website 2010-10-31 11:28:41 +01:00
6b57e8c5ac Extract the video extension from the media URL in metacafe.com 2010-10-31 11:28:41 +01:00
c6c555cf8a Fix metacafe.com downloads for some videos (fixes issue #189) 2010-10-31 11:28:41 +01:00
db7e31b853 Use unicode strings for several error messages that were missing the "u" 2010-10-31 11:28:41 +01:00
d67e097462 Abort download in case of error writing file data to disk 2010-10-31 11:28:41 +01:00
38ed13444a Improve error message on invalid output template and abort execution 2010-10-31 11:28:40 +01:00
8a9f53bebf Fix typo in report_resuming_byte doc string (fixes issue #188) 2010-10-31 11:28:40 +01:00
80cc23304f Bump version number 2010-10-31 11:28:36 +01:00
813962f85a Update user-agent string 2010-10-31 11:28:36 +01:00
109626fcc0 Fix metacafe.com code not working due to gdaKey again (fixes issue #185) 2010-10-31 11:28:36 +01:00
204c9398ab Merge Gavin van Lelyveld's patch for --playlist-start option 2010-10-31 11:28:36 +01:00
2962317dea Put back -b option as a placeholder with a warning message 2010-10-31 11:28:36 +01:00
268fb2bdd8 Consider the file downloaded if the size differs in less than 100 bytes (fixes issue #175) 2010-10-31 11:28:36 +01:00
101e0d1e91 Reorganize request code to make it a bit more robust 2010-10-31 11:28:36 +01:00
f95f29fd25 Properly detect YouTube error messages to print them on screen (fixes issue #172) 2010-10-31 11:28:36 +01:00
06f34701fe Bump version number 2010-10-31 11:28:33 +01:00
5ce7d172d7 Restore support for the get_video method, fixing many issues 2010-10-31 11:28:33 +01:00
2e3a32e4ac Restore proper support for webm formats (fixes issue #166) 2010-10-31 11:28:32 +01:00
8190e3631b Bump version number 2010-10-31 11:28:29 +01:00
e4db6fd042 Update user agent string 2010-10-31 11:28:29 +01:00
497cd3e68e Partially rewrite YouTube InfoExtractor after it stopped working
As part of the changes, the program now downloads the highest quality version
by default and uses fmt_url_map to decide which formats are really available.
2010-10-31 11:28:29 +01:00
460d8acbaa Remove some format command line options 2010-10-31 11:28:29 +01:00
9bf7fa5213 Do not check for self._downloader being None in several places 2010-10-31 11:28:29 +01:00
73f4e7afba Rename UnavailableFormatError to UnavailableVideoError 2010-10-31 11:28:29 +01:00
9715661c19 Use www. instead of uk. in the language setting webpage for YouTube 2010-10-31 11:28:29 +01:00
14912efbb7 Bump version number 2010-10-31 11:28:25 +01:00
96942e6224 Modify User-Agent and Accept headers 2010-10-31 11:28:18 +01:00
df372a655f Improve video ordinal assignment method (fixes issue #149) 2010-10-31 11:28:17 +01:00
9e9647d9a1 Add comment about weird .video extension for format 38 2010-10-31 11:28:17 +01:00
8da0080d36 Support youtu.be URLs (fixes issue #143) 2010-10-31 11:28:17 +01:00
57edaa5bac Support the watch_popup syntax in YouTube URLs 2010-10-31 11:28:17 +01:00
823fcda12a Improve swf player URL detection for RTMP (fixes issue #144) 2010-10-31 11:28:17 +01:00
f2413e6793 Add a --max-quality flag to limit the highest quality (fixes issue #145) 2010-10-31 11:28:17 +01:00
c833bb97dc Add support for "original" format in YouTube (fixes issue #155) 2010-10-31 11:28:17 +01:00
7e2dd306fe Make the Dailymotion uploader regexp more flexible because it fails sometimes 2010-10-31 11:28:17 +01:00
dea147f78e Remove unused methods from the Dailymotion InfoExtractor 2010-10-31 11:28:17 +01:00
08cf5cb80b Remove dead disclaimer/confirmation code.
I do knot know how to perform age confirmation, so just
removeing it for the time we will know how to do this.
2010-10-31 11:28:17 +01:00
4135fa4585 Add support for the Dailymotion
Based slightly (idea and one regular expression) on the old anonymous
dailymotion-dl.pl, but with fixes (more robust regular expression,
extracting author, support for domains other than .com). Simpler
due to the fact that youtube-dl provides all needed functionalities.
2010-10-31 11:28:17 +01:00
fd8ede223e Include format 43 in best quality list (fixes issue #150) 2010-10-31 11:28:17 +01:00
2b06c33d19 Improve some metavar names 2010-10-31 11:28:17 +01:00
ca6a11fa59 Forbid forward slash in win32 file names (fixes issue #147) 2010-10-31 11:28:17 +01:00
de3ed1f84a Bump version number 2010-10-31 11:28:13 +01:00
0b59bf4a5e Add webm extension to formats 43 and 45 (fixes issue #139) 2010-10-31 11:28:10 +01:00
896a6ea9e2 Fix for all-formats exception by Valentin Hilbig 2010-10-31 11:28:10 +01:00
7031008c98 Add a number of retries with tweaked patch, originally from Neil Channen 2010-10-31 11:28:03 +01:00
e616ec0ca6 Add player signature verification to rtmpdump support (fixes issue #63) 2010-10-31 11:27:01 +01:00
2a7353b87a Make -a understand dash means stdin 2010-10-31 11:27:01 +01:00
787f2a5d95 Also try no "el" option in get_video_info (fixes issue #130) 2010-10-31 11:27:01 +01:00
42e3546fb5 Increment number of downloads when the file has already been fully downloaded 2010-10-31 11:27:01 +01:00
0228ee9788 Print EOL before "unable to write data" error 2010-10-31 11:27:01 +01:00
131efd1ae0 Detect errors in video data writes 2010-10-31 11:27:01 +01:00
2bebb386b8 Make "all-formats" and "best-quality" download the version without specific format too 2010-10-31 11:27:01 +01:00
7e58d56888 Merge changes by obeythepenguin 2010-10-31 11:27:01 +01:00
554bbdc48c Bump version number 2010-10-31 11:26:57 +01:00
37dfa1e0df Also try el=vevo on YouTube if everything else fails (fixes issue #115) 2010-10-31 11:26:57 +01:00
4dd63be193 Bump version number 2010-10-31 11:26:53 +01:00
7d8d06122d Add the "ord" template parameter (fixes issue #101) 2010-10-31 11:26:53 +01:00
9177ce4d8c Support new playlist style URL (fixes issue #114) 2010-10-31 11:26:52 +01:00
ce5cafea40 Change method to detect end of playlist (fixes issue #113) 2010-10-31 11:26:52 +01:00
ae3fc475eb Bump version number 2010-10-31 11:26:48 +01:00
d063db3810 Try el=detailpage if el=embedded fails for YouTube 2010-10-31 11:26:48 +01:00
6194531831 Add Yahoo! Video InfoExtractor, merged from "obeythepenguin" 2010-10-31 11:26:48 +01:00
2ed1ddd0a0 Request video info webpage using "embedded" instead of "detailpage"
In the request for get_video_info, use el=embedded instead of el=detailpage, as
if the request was coming from an embedded video player instead of the video
webpage. This created problems for some videos, with YouTube replying with
"Invalid parameters". This fixes issue #109 and fixes issue #110.
2010-10-31 11:26:48 +01:00
eaf4a7288d Solve minor aesthetical problem in rtmpdump error messages 2010-10-31 11:26:48 +01:00
6ba562b0e4 Added --all-format option from tweaked patch (fixes issue #102) 2010-10-31 11:26:48 +01:00
131bc7651a Make the "-" output file name equivalent to /dev/stdout (fixes issue #103) 2010-10-31 11:26:48 +01:00
5caacaddc6 Bump version number 2010-10-31 11:26:42 +01:00
79f193e5d8 Do not use the final URL for -g 2010-10-31 11:26:38 +01:00
44e16fa17f Bump version number 2010-10-31 11:26:34 +01:00
d983524781 Add --no-progress option (fixes issue #98) 2010-10-31 11:26:34 +01:00
1392f3f52c Give preference to format 34 before format 5 in quality list 2010-10-31 11:26:34 +01:00
43ab0ca432 Do not error out on problems printing the file name 2010-10-31 11:26:34 +01:00
31cbdaafd4 Properly support simple titles in the newest InfoExtractors 2010-10-31 11:26:34 +01:00
bd3cdf6dc4 Do not pass URLs around in Unicode form (fixes issue #92) 2010-10-31 11:26:34 +01:00
8cc468de75 Bump version number 2010-10-31 11:26:31 +01:00
31bcb48001 Tweak final filename in the open attempt, to be platform and filename-agnostic 2010-10-31 11:26:30 +01:00
c201ebc915 Fix SyntaxError triggered by mistake in user-agent commit 2010-10-31 11:26:30 +01:00
ce9c6a3097 Fix problem with sanitize_title not replacing Windows directory separator 2010-10-31 11:26:30 +01:00
4cfeb46544 Update user-agent string 2010-10-31 11:26:30 +01:00
490fd7aea7 Cherry-pick obeythepenguin's changes and merge them into main branch 2010-10-31 11:26:30 +01:00
c05fc6a345 Support simplest new URLs in YouTube 2010-10-31 11:26:30 +01:00
91bce611c7 Bump version number 2010-10-31 11:26:26 +01:00
1c1821f8eb Improve rtmpdump support 2010-10-31 11:25:09 +01:00
60f8049d05 Only verify the URL when it's an HTTP download 2010-10-31 11:25:08 +01:00
49c0028a7a patched to add Google Video and Photobucket support 2010-10-31 11:25:08 +01:00
f1b4bee09d Bump version number 2010-10-31 11:25:05 +01:00
a04e80a481 Add flexibility importing the "parse_qs" function (fixes issue #81) 2010-10-31 11:25:05 +01:00
fe788f2c6f Bump version number 2010-10-31 11:25:01 +01:00
75a4cf3c97 Fix minor problems with Youtube user InfoExtractor 2010-10-31 11:25:01 +01:00
0487b407a1 Add support for using rtmpdump 2010-10-31 11:25:01 +01:00
a692ca7c49 Bump version number 2010-10-31 11:24:57 +01:00
9c457d2a20 Handle file open mode correctly (fixes issue #76) 2010-10-31 11:24:56 +01:00
c39c05cdd7 Added support to download all of a user's videos! 2010-10-31 11:24:56 +01:00
29f0756805 Fix detection of uploader nickname in metacafe (fixes issue #67) 2010-10-31 11:24:56 +01:00
d9bc015b3c Take format 37 into account (fixes issue #65) 2010-10-31 11:24:56 +01:00
4bec29ef4b Add self-updating code 2010-10-31 11:24:56 +01:00
ab1f697827 Use unquote_plus to decode video title 2010-10-31 11:24:56 +01:00
583c714fde Allow empty titles because they do appear in some videos (fixes issue #53) 2010-10-31 11:24:56 +01:00
850ab76560 Use default values for "continuedl" and "nooverwrites" downloader parameters 2010-10-31 11:24:56 +01:00
f5a5bec351 Avoid using Unicode strings when forming URL requests (fixes issue #50) 2010-10-31 11:24:56 +01:00
f94b636c3e Improve preferred encoding detection method 2010-10-31 11:24:56 +01:00
0833f1eb83 Restore INTERNAL version number 2010-10-31 11:24:56 +01:00
ad0525b3e6 Bump version number 2010-10-31 11:24:52 +01:00
30edbf89e4 Report final URL with -g and do not print URLs normally (fixes issue #49) 2010-10-31 11:24:52 +01:00
eae2666cb4 Handle weird OSX locale settings gracefully (fixes issue #43) 2010-10-31 11:24:52 +01:00
2a04438c7c Restore INTERNAL version number 2010-10-31 11:24:52 +01:00
dd24ff44ab Bump version number 2010-10-31 11:24:48 +01:00
304a4d85ea Modify _MORE_PAGES_INDICATOR for searches (fixes issue #41) 2010-10-31 11:24:48 +01:00
d899774377 Accept my_playlists syntax for playlists 2010-10-31 11:24:48 +01:00
fade05990c Do not specify any format as a last option for the -b flag 2010-10-31 11:24:48 +01:00
e5b1604882 Set INTERNAL version number 2010-10-31 11:24:48 +01:00
0c8beb43f2 Bump version number 2010-10-31 11:24:44 +01:00
71b7300e63 Use get_video_info to work around captcha problems (fixes issue #31) 2010-10-31 11:24:44 +01:00
8497c36d5a Fix minor problem with size formatting method 2010-10-31 11:24:44 +01:00
110cd3462e Update User-agent string 2010-10-31 11:24:43 +01:00
18963a36b0 Fix metacafe.com code due to recent changes in the site 2010-10-31 11:24:43 +01:00
df1ceb1fd9 Include format 5 in best quality list 2010-10-31 11:24:43 +01:00
7eb0e89742 Properly encode messages sent to stderr (fixes issue #34) 2010-10-31 11:24:43 +01:00
8b07dec5f6 Bump version number 2010-10-31 11:24:40 +01:00
113e5266cc Modify "more pages" check in YouTube playlist (fixes issue #29) 2010-10-31 11:24:40 +01:00
55e7c75e12 Delay opening file until there is data to write
Fixes issue #19.
2010-10-31 11:24:40 +01:00
ff21a710ae Restore INTERNAL version number 2010-10-31 11:24:36 +01:00
7374795552 Bump version number 2010-10-31 11:24:36 +01:00
0cd61126fc Document new "continuedl" FileDownloader option 2010-10-31 11:24:36 +01:00
e1f18b8a84 Remove integer casts and replace them with long integer casts 2010-10-31 11:24:36 +01:00
6a0015a7e0 Fix missing cast preventing detection of already downloaded file 2010-10-31 11:24:36 +01:00
7db85b2c70 Tweaks to ivanov's code 2010-10-31 11:24:36 +01:00
f76c2df64e Added -c option (--continue)
interrupted downloads will properly resume and append to the previously downloaded data, instead of overwriting the file.

There's some error checking - if the length of the file to be download matches the length of the previously downloaded data, we report that this file has already been downloaded and do nothing.

If there is some other HTTP 416 'Requested range not satisfiable' error, we simply re-download the whole file (reverting to the original functionality)

All other HTTP errors are simply raised.

Resuming does not override -w (--nooverwrite), since it is not clear what should happen if file on disk is larger than file to be downloaded.

Thus, -c does nothing if -w is present.
2010-10-31 11:24:36 +01:00
daa88ccc2e Fix TypeError when using the -f option (fixes issue #24) 2010-10-31 11:24:36 +01:00
eb5d184157 Restore INTERNAL version number 2010-10-31 11:24:36 +01:00
5745bfdcdc Bump version number 2010-10-31 11:24:32 +01:00
320becd692 Remove trails from the "append_const" change (fixes issue #23) 2010-10-31 11:24:32 +01:00
968aa88438 Only catch UnavailableFormatError in call to process_info 2010-10-31 11:24:32 +01:00
cbfff4db63 Verify URLs in simulate mode (fixes issue #22) 2010-10-31 11:24:32 +01:00
781daeabdb Restore "INTERNAL" version number 2010-10-31 11:24:32 +01:00
705804f5d1 Update version number in LATEST_VERSION 2010-10-31 11:24:24 +01:00
1d50e3d153 Bump version number 2010-10-31 11:24:19 +01:00
d69a1c9189 Handle "content too short" errors properly 2010-10-31 11:24:19 +01:00
488f619471 Close video file before removing it. 2010-10-31 11:24:19 +01:00
097ba9472b Remove .hgignore from version tracking 2010-10-31 11:24:19 +01:00
554f3e284c Add LATEST_VERSION to further ease checking which is the latest stable version 2010-10-31 11:24:19 +01:00
cab60d710a Put back INTERNAL version 2010-10-31 11:24:19 +01:00
152edc0d4c Set version number 2010-10-31 11:24:16 +01:00
b74c859d0f Use store_const instead of append_const as the latter requires Python 2.5 2010-10-31 11:24:16 +01:00
0e54320009 Restore INTERNAL version number 2010-10-31 11:24:16 +01:00
43f35682e9 Put version number in place 2010-10-31 11:24:12 +01:00
ad274509aa Add an "epoch" keyword to the output template 2010-10-31 11:24:12 +01:00
d09744d055 Add format 35 (flv) as second best in quality 2010-10-31 11:24:12 +01:00
1c76e23e0f Move the -t and -l options to the filesystem group 2010-10-31 11:24:12 +01:00
42bcd27d3b Some consistency changes and ghost-file bugfix after discussion with rg3 2010-10-31 11:24:12 +01:00
2740c509b3 Fixed ambiguity of multiple video option specifiers by dissalowing it; changed some sys.ext calls to parser.error 2010-10-31 11:24:12 +01:00
7b7759f5a4 Added -b option and created option groups for help prompt 2010-10-31 11:24:12 +01:00
8d2c83eda5 Update and correct (format,extension) table for YouTube 2010-10-31 11:24:12 +01:00
2f11508ada Minor documentation change 2010-10-31 11:24:12 +01:00
b65740e474 Skip blank lines in batch file -- fixes issue #9 2010-10-31 11:24:12 +01:00
a825f0ca83 Revert version number to INTERNAL 2010-10-31 11:24:12 +01:00
27c3383e2d Set version number 2010-10-31 11:24:08 +01:00
dbccb6cd84 Fix code for metacafe.com (this fixes issue #8) 2010-10-31 11:24:08 +01:00
98164eb3b9 Fix some minor unicode-related problems 2010-10-31 11:24:08 +01:00
2851b2ca18 Update internal documentation to reflect the new behaviour 2010-10-31 11:24:08 +01:00
6f21f68629 Download videos after extracting information
This is achieved by letting the InfoExtractors instruct its downloader to
process the information dictionary just after extracting the information. As a
consequence, some code is simplified too.
2010-10-31 11:24:08 +01:00
147753eb33 Replase self._downloader.to_stderr() with self._downloader.trouble() 2010-10-31 11:24:08 +01:00
3aaf887e98 Put the downloader in full control of output messages 2010-10-31 11:24:08 +01:00
9bf386d74b Move the downloader return code to a class member
This makes it possible to initialize it with value zero and later let the
trouble() overwrite the value. It simplifies error treatment and paves the way
for the InfoExtracto objects to call process_info() themselves, which should
solve the issues with tor and some other problems.
2010-10-31 11:24:08 +01:00
2f4d18a9f7 Use getpreferredencoding() instead of getdefaultlocale()
This fixes issue #7 and is recommended after a bug report I made to the
Python team:

http://bugs.python.org/issue5815
2010-10-31 11:24:08 +01:00
b0eddb2eb4 Update User-Agent string 2010-10-31 11:24:08 +01:00
9cee6d9035 Minor adjustments to closely match what a web browser does 2010-10-31 11:24:08 +01:00
c8619e0163 Move the code to process an InfoExtractor result to its own method 2010-10-31 11:24:08 +01:00
257453b92b Added cap if user requests ytsearch number over 1000 (with warning) 2010-10-31 11:24:08 +01:00
fd9288c315 Changed ytsearchall to retrieve max 1000 results 2010-10-31 11:24:07 +01:00
1db4ff6054 Restore internal version number indicator 2010-10-31 11:24:07 +01:00
763826cf2c Establish version number 2010-10-31 11:24:04 +01:00
af6a92f4c9 Fix issue #5 2010-10-31 11:24:04 +01:00
f995f7127c Remove some extra whitespace 2010-10-31 11:24:04 +01:00
e54930cf71 Switch to "INTERNAL" version again 2010-10-31 11:24:04 +01:00
c6b311c524 Set version number for release 2010-10-31 11:23:58 +01:00
79e75f66c8 Remove --best-quality option and add proper support for high definition format 2010-10-31 11:23:58 +01:00
053e77d6ed Remove old ignore patterns which are no longer needed 2010-10-31 11:23:58 +01:00
d0a9affb46 Replace setter and getter with simple attribute access 2010-10-31 11:23:58 +01:00
76800042fd Replace version number while in progress 2010-10-31 11:23:58 +01:00
7ab2043c9c Bump version number 2010-10-31 11:23:52 +01:00
3e703dd1cd Remove generator and webpage template, moved to wiki 2010-10-31 11:23:52 +01:00
cc10940385 Fix very wrong code for setting the language
It turned out that, despite the program working without apparent errors,
the code for setting the language was completely wrong. First, it didn't
run unless some form of authentication was performed. Second, I
misstyped _LANG_URL as _LOGIN_URL, so the language was not being set at
all! Amazing it still worked.
2010-10-31 11:23:48 +01:00
5121ef2071 Fix wrong indentation 2010-10-31 11:23:48 +01:00
fd20984889 Bump version number 2010-10-31 11:23:48 +01:00
111ae3695c Document new -w option 2010-10-31 11:23:48 +01:00
0beeff4b3e Add que -w or --no-overwrites option 2010-10-31 11:23:48 +01:00
64a6f26c5d Put Danny Colligan as an author in the script itself 2010-10-31 11:23:48 +01:00
a9633f1457 Use quote_plus instead of manually replacing spaces by plus signs 2010-10-31 11:23:48 +01:00
a20e4c2f96 Improve documentation of new features in webpage 2010-10-31 11:23:47 +01:00
d1536018a8 Include Danny Colligan in credits 2010-10-31 11:23:47 +01:00
25af2bce3a Include Danny Colligan's YouTube search InfoExtractor 2010-10-31 11:23:47 +01:00
d1580ed990 Fix NameError 2010-10-31 11:23:45 +01:00
eb0d2909a8 Document new -a option 2010-10-31 11:23:44 +01:00
ba72f8a5d1 Bump version and increase Firefox version number 2010-10-31 11:23:44 +01:00
c6fd0bb806 Add -a (--batch-file) option 2010-10-31 11:23:44 +01:00
72ac78b8b0 Fix for YouTube internationalization changes 2010-10-31 11:23:44 +01:00
240b737ebd Bump version number 2010-10-31 11:23:41 +01:00
27d98b6e25 Fix TypeError in decode() method and unordered playlist URLs 2010-10-31 11:23:41 +01:00
5487aea5d8 Improve documentation 2010-10-31 11:23:41 +01:00
5 changed files with 2414 additions and 574 deletions

View File

@ -1,4 +0,0 @@
syntax: glob
index.html
youtube-dl-*
.*.swp

1
LATEST_VERSION Normal file
View File

@ -0,0 +1 @@
2011.02.25c

View File

@ -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)

View File

@ -1,212 +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 <em>Output template</em> 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>&amp;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><em>youtube-dl</em> can attempt to download the best quality version of
a video by using the -b or --best-quality option.</li>
<li><em>youtube-dl</em> can attempt to download the mobile quality version of
a video by using the -m or --mobile-version option.</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><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>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.</li>
<li><em>ext</em>: The sequence will be replaced by the appropriate
extension.</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>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 &copy; 2006-2007 Ricardo Garcia Gonzalez</p>
</body>
</html>

2756
youtube-dl

File diff suppressed because it is too large Load Diff