1
0
mirror of https://github.com/ytdl-org/youtube-dl.git synced 2025-04-19 21:37:40 +00:00
This commit is contained in:
GitHub Merge Button 2011-09-10 02:08:41 -07:00
commit a32832910e
2 changed files with 54 additions and 0 deletions

37
README Normal file
View File

@ -0,0 +1,37 @@
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. The project is currently
being developed at github.com.
I will try to keep it updated if YouTube.com changes the way you
access their videos. After all, it is a simple and short
program. However, I can not 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. My contact information
is at rg03.wordpress.com. If the program stops working and I can not
solve the problem but you have a solution, I would like to know
it. Furthermore, if you think you can maintain the program yourself,
tell me.
Thanks for all the feedback received so far. I am glad people find my
program useful.
AUTHORS:
* Ricardo Garcia Gonzalez: program core, YouTube.com InfoExtractor,
metacafe.com InfoExtractor and YouTube playlist InfoExtractor.
* Danny Colligan: YouTube search InfoExtractor, ideas and patches.
* Benjamin Johnson: Google Video InfoExtractor, Photobucket
InfoExtractor, Yahoo! Video InfoExtractor, generic InfoExtractor,
ideas, patches, etc.
* Vasyl' Vavrychuk: DepositFiles InfoExtractor, ideas and patches.
* Witold Baryluk: Dailymotion InfoExtractor.
* Paweł Paprota: YouTube user videos InfoExtractor.
* Gergely Imreh: Facebook InfoExtractor, ideas and patches.
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.

View File

@ -282,6 +282,8 @@ class FileDownloader(object):
noprogress: Do not print the progress bar.
playliststart: Playlist item to start at.
playlistend: Playlist item to end at.
matchtitle: Download only matching titles.
rejecttitle: Reject downloads for matching titles.
logtostderr: Log messages to stderr instead of stdout.
consoletitle: Display progress in console window's titlebar.
nopart: Do not use temporary .part files.
@ -557,6 +559,17 @@ class FileDownloader(object):
if filename is None:
return
matchtitle=self.params.get('matchtitle',False)
rejecttitle=self.params.get('rejecttitle',False)
title=info_dict['title'].encode(preferredencoding(), 'xmlcharrefreplace')
if matchtitle and not re.search(matchtitle, title, re.IGNORECASE):
self.to_screen(u'[download] "%s" title did not match pattern "%s"' % (title, matchtitle))
return
if rejecttitle and re.search(rejecttitle, title, re.IGNORECASE):
self.to_screen(u'[download] "%s" title matched reject pattern "%s"' % (title, rejecttitle))
return
if self.params.get('nooverwrites', False) and os.path.exists(filename):
self.to_stderr(u'WARNING: file exists and will be skipped')
return
@ -2745,6 +2758,8 @@ if __name__ == '__main__':
dest='playliststart', metavar='NUMBER', help='playlist video to start at (default is 1)', default=1)
parser.add_option('--playlist-end',
dest='playlistend', metavar='NUMBER', help='playlist video to end at (default is last)', default=-1)
parser.add_option('--match-title', dest='matchtitle', metavar='REGEX',help='download only matching titles (regex or caseless sub-string)')
parser.add_option('--reject-title', dest='rejecttitle', metavar='REGEX',help='skip download for matching titles (regex or caseless sub-string)')
parser.add_option('--dump-user-agent',
action='store_true', dest='dump_user_agent',
help='display the current browser identification', default=False)
@ -2947,6 +2962,8 @@ if __name__ == '__main__':
'noprogress': opts.noprogress,
'playliststart': opts.playliststart,
'playlistend': opts.playlistend,
'matchtitle':opts.matchtitle,
'rejecttitle':opts.rejecttitle,
'logtostderr': opts.outtmpl == '-',
'consoletitle': opts.consoletitle,
'nopart': opts.nopart,