summary refs log tree commit diff
diff options
context:
space:
mode:
authorPhilipp Hagemeister <phihag@phihag.de>2013-01-03 20:26:38 +0100
committerPhilipp Hagemeister <phihag@phihag.de>2013-01-03 20:26:38 +0100
commitf5ebb61495a2ed3ee5563bedc72889be7198c7f2 (patch)
treecf3a7db2e864ca1eaf0b35848ea3bb9105426df3
parent431d88dd31cfcf32507e0dd46c8445598fc9eaf8 (diff)
downloadyoutube-dl-f5ebb61495a2ed3ee5563bedc72889be7198c7f2.tar.gz
youtube-dl-f5ebb61495a2ed3ee5563bedc72889be7198c7f2.tar.xz
youtube-dl-f5ebb61495a2ed3ee5563bedc72889be7198c7f2.zip
Support page URL in RTMP downloads
-rw-r--r--youtube_dl/FileDownloader.py13
1 files changed, 9 insertions, 4 deletions
diff --git a/youtube_dl/FileDownloader.py b/youtube_dl/FileDownloader.py
index 55afbdbed..be9e4918e 100644
--- a/youtube_dl/FileDownloader.py
+++ b/youtube_dl/FileDownloader.py
@@ -537,7 +537,7 @@ class FileDownloader(object):
             if info is None:
                 break
 
-    def _download_with_rtmpdump(self, filename, url, player_url):
+    def _download_with_rtmpdump(self, filename, url, player_url, page_url):
         self.report_destination(filename)
         tmpfilename = self.temp_name(filename)
 
@@ -551,7 +551,11 @@ class FileDownloader(object):
         # Download using rtmpdump. rtmpdump returns exit code 2 when
         # the connection was interrumpted and resuming appears to be
         # possible. This is part of rtmpdump's normal usage, AFAIK.
-        basic_args = ['rtmpdump', '-q'] + [[], ['-W', player_url]][player_url is not None] + ['-r', url, '-o', tmpfilename]
+        basic_args = ['rtmpdump', '-q', '-r', url, '-o', tmpfilename]
+        if player_url is not None:
+            basic_args += ['-W', player_url]
+        if page_url is not None:
+            basic_args += ['--pageUrl', page_url]
         args = basic_args + [[], ['-e', '-k', '1']][self.params.get('continuedl', False)]
         if self.params.get('verbose', False):
             try:
@@ -584,7 +588,6 @@ class FileDownloader(object):
 
     def _do_download(self, filename, info_dict):
         url = info_dict['url']
-        player_url = info_dict.get('player_url', None)
 
         # Check file already present
         if self.params.get('continuedl', False) and os.path.isfile(encodeFilename(filename)) and not self.params.get('nopart', False):
@@ -593,7 +596,9 @@ class FileDownloader(object):
 
         # Attempt to download using rtmpdump
         if url.startswith('rtmp'):
-            return self._download_with_rtmpdump(filename, url, player_url)
+            return self._download_with_rtmpdump(filename, url,
+                                                info_dict.get('player_url', None),
+                                                info_dict.get('page_url', None))
 
         tmpfilename = self.temp_name(filename)
         stream = None