diff options
| author | Filippo Valsorda <filippo.valsorda@gmail.com> | 2012-12-20 16:28:16 +0100 | 
|---|---|---|
| committer | Filippo Valsorda <filippo.valsorda@gmail.com> | 2012-12-20 16:28:16 +0100 | 
| commit | 77c4beab8a0c13e158bad8af4e014d57766f1940 (patch) | |
| tree | eca727e374b5927fb79530d58c8220f9623044f8 | |
| parent | 1a2c3c0f3ee8f91d650a2a252d2795ea88203ca0 (diff) | |
new info_dict field: uploader_id
| -rw-r--r-- | README.md | 19 | ||||
| -rw-r--r-- | test/tests.json | 1 | ||||
| -rwxr-xr-x | youtube_dl/InfoExtractors.py | 18 | ||||
| -rw-r--r-- | youtube_dl/__init__.py | 2 | 
4 files changed, 27 insertions, 13 deletions
| @@ -46,15 +46,16 @@ which means you can modify it, redistribute it or use it however you like.      -A, --auto-number        number downloaded files starting from 00000      -o, --output TEMPLATE    output filename template. Use %(title)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), -                             %(extractor)s for the provider (youtube, metacafe, -                             etc), %(id)s for the video id and %% for a literal -                             percent. Use - to output to stdout. Can also be -                             used to download to a different directory, for -                             example with -o '/my/downloads/%(uploader)s/%(title -                             )s-%(id)s.%(ext)s' . +                             %(uploader_id)s for the uploader nickname if +                             different, %(autonumber)s to get an automatically +                             incremented number, %(ext)s for the filename +                             extension, %(upload_date)s for the upload date +                             (YYYYMMDD), %(extractor)s for the provider +                             (youtube, metacafe, etc), %(id)s for the video id +                             and %% for a literal percent. Use - to output to +                             stdout. Can also be used to download to a different +                             directory, for example with -o '/my/downloads/%(upl +                             oader)s/%(title)s-%(id)s.%(ext)s' .      --restrict-filenames     Restrict filenames to only ASCII characters, and                               avoid "&" and spaces in filenames      -a, --batch-file FILE    file containing URLs to download ('-' for stdin) diff --git a/test/tests.json b/test/tests.json index 4f8f68f38..83afda985 100644 --- a/test/tests.json +++ b/test/tests.json @@ -6,6 +6,7 @@      "info_dict": {        "title": "youtube-dl test video \"'/\\ä↭𝕐",        "uploader": "Philipp Hagemeister", +      "uploader_id": "phihag",        "upload_date": "20121002",        "description": "test chars:  \"'/\\ä↭𝕐\n\nThis is a test video for youtube-dl.\n\nFor more information, contact phihag@phihag.de ."      } diff --git a/youtube_dl/InfoExtractors.py b/youtube_dl/InfoExtractors.py index 6201ccad7..3eb070d4a 100755 --- a/youtube_dl/InfoExtractors.py +++ b/youtube_dl/InfoExtractors.py @@ -32,7 +32,7 @@ class InfoExtractor(object):      id:             Video identifier.      url:            Final video URL. -    uploader:       Nickname of the video uploader, unescaped. +    uploader:       Full name of the video uploader, unescaped.      upload_date:    Video upload date (YYYYMMDD).      title:          Video title, unescaped.      ext:            Video filename extension. @@ -42,6 +42,7 @@ class InfoExtractor(object):      format:         The video format, defaults to ext (used for --get-format)      thumbnail:      Full URL to a video thumbnail image.      description:    One-line video description. +    uploader_id:    Nickname or id of the video uploader.      player_url:     SWF Player URL (used for rtmpdump).      subtitles:      The .srt file contents.      urlhandle:      [internal] The urlHandle to be used to download the file, @@ -384,10 +385,18 @@ class YoutubeIE(InfoExtractor):          # uploader          if 'author' not in video_info: -            self._downloader.trouble(u'ERROR: unable to extract uploader nickname') +            self._downloader.trouble(u'ERROR: unable to extract uploader name')              return          video_uploader = compat_urllib_parse.unquote_plus(video_info['author'][0]) +        # uploader_id +        video_uploader_id = None +        mobj = re.search(r'<link itemprop="url" href="http://www.youtube.com/user/([^"]+)">', video_webpage) +        if mobj is not None: +            video_uploader_id = mobj.group(1) +        else: +            self._downloader.trouble(u'WARNING: unable to extract uploader nickname') +          # title          if 'title' not in video_info:              self._downloader.trouble(u'ERROR: unable to extract video title') @@ -495,6 +504,7 @@ class YoutubeIE(InfoExtractor):                  'id':       video_id,                  'url':      video_real_url,                  'uploader': video_uploader, +                'uploader_id': video_uploader_id,                  'upload_date':  upload_date,                  'title':    video_title,                  'ext':      video_extension, @@ -994,8 +1004,9 @@ class VimeoIE(InfoExtractor):          # Extract title          video_title = config["video"]["title"] -        # Extract uploader +        # Extract uploader and uploader_id          video_uploader = config["video"]["owner"]["name"] +        video_uploader_id = config["video"]["owner"]["url"].split('/')[-1]          # Extract video thumbnail          video_thumbnail = config["video"]["thumbnail"] @@ -1047,6 +1058,7 @@ class VimeoIE(InfoExtractor):              'id':       video_id,              'url':      video_url,              'uploader': video_uploader, +            'uploader_id': video_uploader_id,              'upload_date':  video_upload_date,              'title':    video_title,              'ext':      video_extension, diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index 9b25ab3a2..1102b2fce 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -307,7 +307,7 @@ def parseOpts():              action='store_true', dest='autonumber',              help='number downloaded files starting from 00000', default=False)      filesystem.add_option('-o', '--output', -            dest='outtmpl', metavar='TEMPLATE', help='output filename template. Use %(title)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), %(extractor)s for the provider (youtube, metacafe, etc), %(id)s for the video id and %% for a literal percent. Use - to output to stdout. Can also be used to download to a different directory, for example with -o \'/my/downloads/%(uploader)s/%(title)s-%(id)s.%(ext)s\' .') +            dest='outtmpl', metavar='TEMPLATE', help='output filename template. Use %(title)s to get the title, %(uploader)s for the uploader name, %(uploader_id)s for the uploader nickname if different, %(autonumber)s to get an automatically incremented number, %(ext)s for the filename extension, %(upload_date)s for the upload date (YYYYMMDD), %(extractor)s for the provider (youtube, metacafe, etc), %(id)s for the video id and %% for a literal percent. Use - to output to stdout. Can also be used to download to a different directory, for example with -o \'/my/downloads/%(uploader)s/%(title)s-%(id)s.%(ext)s\' .')      filesystem.add_option('--restrict-filenames',              action='store_true', dest='restrictfilenames',              help='Restrict filenames to only ASCII characters, and avoid "&" and spaces in filenames', default=False) | 
