]> gitweb @ CieloNegro.org - youtube-dl.git/blobdiff - youtube-dl
Minor improvements and changes
[youtube-dl.git] / youtube-dl
index 914cce37bcc24e76960f66dfb35b04903ce304a9..607109bb26f7db3442ec10133f00f536e40830c0 100755 (executable)
@@ -17,7 +17,7 @@ import urllib
 import urllib2
 
 std_headers = {        
-       'User-Agent': 'UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9) Gecko/2008052906 Firefox/3.0',
+       'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1',
        'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
        'Accept': 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5',
        'Accept-Language': 'en-us,en;q=0.5',
@@ -55,6 +55,8 @@ class FileDownloader(object):
        password:       Password for authentication purposes.
        usenetrc:       Use netrc for authentication instead.
        quiet:          Do not print messages to stdout.
+       forceurl:       Force printing final URL.
+       forcetitle:     Force printing title.
        simulate:       Do not download the video files.
        format:         Video format code.
        outtmpl:        Template for output names.
@@ -174,10 +176,18 @@ class FileDownloader(object):
                                if len(results) > 1 and self.fixed_template():
                                        sys.exit('ERROR: fixed output name but more than one file to download')
 
-                               if self._params.get('simulate', False):
-                                       continue
-
                                for result in results:
+
+                                       # Forced printings
+                                       if self._params.get('forcetitle', False):
+                                               print result['title']
+                                       if self._params.get('forceurl', False):
+                                               print result['url']
+                                               
+                                       # Do nothing else if in simulate mode
+                                       if self._params.get('simulate', False):
+                                               continue
+
                                        try:
                                                filename = self._params['outtmpl'] % result
                                        except (ValueError, KeyError), err:
@@ -382,7 +392,7 @@ class YoutubeIE(InfoExtractor):
                        format_param = params.get('format', None)
 
                # Extension
-               video_extension = {18: 'mp4'}.get(format_param, 'flv')
+               video_extension = {'18': 'mp4'}.get(format_param, 'flv')
 
                # Normalize URL, including format
                normalized_url = 'http://www.youtube.com/watch?v=%s' % video_id
@@ -437,9 +447,15 @@ class YoutubeIE(InfoExtractor):
 
 if __name__ == '__main__':
        try:
+               # Modules needed only when running the main program
+               import optparse
+
                # General configuration
                urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler()))
                urllib2.install_opener(urllib2.build_opener(urllib2.HTTPCookieProcessor()))
+               socket.setdefaulttimeout(300) # 5 minutes should be enough (famous last words)
+
+               # Parse command line
 
                # Information extractors
                youtube_ie = YoutubeIE()
@@ -449,10 +465,12 @@ if __name__ == '__main__':
                        'usenetrc': False,
                        'username': None,
                        'password': None,
-                       'quiet': False,
-                       'simulate': False,
+                       'quiet': True,
+                       'forceurl': True,
+                       'forcetitle': True,
+                       'simulate': True,
                        'format': None,
-                       'outtmpl': '%(ext)s/%(ext)s/%(id)s.%(ext)s'
+                       'outtmpl': '%(id)s.%(ext)s'
                        })
                fd.add_info_extractor(youtube_ie)
                fd.download([