mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-03 23:17:07 -05:00 
			
		
		
		
	Improve video ordinal assignment method (fixes issue #149)
This commit is contained in:
		
							
								
								
									
										33
									
								
								youtube-dl
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								youtube-dl
									
									
									
									
									
								
							@@ -387,6 +387,10 @@ class FileDownloader(object):
 | 
			
		||||
			self.to_stdout(u'[download] Download completed')
 | 
			
		||||
		else:
 | 
			
		||||
			self.to_stdout(u'')
 | 
			
		||||
	
 | 
			
		||||
	def increment_downloads(self):
 | 
			
		||||
		"""Increment the ordinal that assigns a number to each file."""
 | 
			
		||||
		self._num_downloads += 1
 | 
			
		||||
 | 
			
		||||
	def process_info(self, info_dict):
 | 
			
		||||
		"""Process a single dictionary returned by an InfoExtractor."""
 | 
			
		||||
@@ -582,7 +586,6 @@ class FileDownloader(object):
 | 
			
		||||
				try:
 | 
			
		||||
					(stream, filename) = sanitize_open(filename, open_mode)
 | 
			
		||||
					self.report_destination(filename)
 | 
			
		||||
					self._num_downloads += 1
 | 
			
		||||
				except (OSError, IOError), err:
 | 
			
		||||
					self.trouble('ERROR: unable to open for writing: %s' % str(err))
 | 
			
		||||
					return False
 | 
			
		||||
@@ -809,6 +812,10 @@ class YoutubeIE(InfoExtractor):
 | 
			
		||||
		if mobj is None:
 | 
			
		||||
			self._downloader.trouble(u'ERROR: invalid URL: %s' % url)
 | 
			
		||||
			return
 | 
			
		||||
 | 
			
		||||
		# At this point we have a new video
 | 
			
		||||
		if self._downloader is not None:
 | 
			
		||||
			self._downloader.increment_downloads()
 | 
			
		||||
		video_id = mobj.group(2)
 | 
			
		||||
 | 
			
		||||
		# Downloader parameters
 | 
			
		||||
@@ -1035,6 +1042,10 @@ class MetacafeIE(InfoExtractor):
 | 
			
		||||
			self._youtube_ie.extract('http://www.youtube.com/watch?v=%s' % mobj2.group(1))
 | 
			
		||||
			return
 | 
			
		||||
 | 
			
		||||
		# At this point we have a new video
 | 
			
		||||
		if self._downloader is not None:
 | 
			
		||||
			self._downloader.increment_downloads()
 | 
			
		||||
 | 
			
		||||
		simple_title = mobj.group(2).decode('utf-8')
 | 
			
		||||
		video_extension = 'flv'
 | 
			
		||||
 | 
			
		||||
@@ -1124,6 +1135,9 @@ class DailymotionIE(InfoExtractor):
 | 
			
		||||
			self._downloader.trouble(u'ERROR: invalid URL: %s' % url)
 | 
			
		||||
			return
 | 
			
		||||
 | 
			
		||||
		# At this point we have a new video
 | 
			
		||||
		if self._downloader is not None:
 | 
			
		||||
			self._downloader.increment_downloads()
 | 
			
		||||
		video_id = mobj.group(1)
 | 
			
		||||
 | 
			
		||||
		simple_title = mobj.group(2).decode('utf-8')
 | 
			
		||||
@@ -1209,6 +1223,9 @@ class GoogleIE(InfoExtractor):
 | 
			
		||||
			self._downloader.trouble(u'ERROR: Invalid URL: %s' % url)
 | 
			
		||||
			return
 | 
			
		||||
 | 
			
		||||
		# At this point we have a new video
 | 
			
		||||
		if self._downloader is not None:
 | 
			
		||||
			self._downloader.increment_downloads()
 | 
			
		||||
		video_id = mobj.group(1)
 | 
			
		||||
 | 
			
		||||
		video_extension = 'mp4'
 | 
			
		||||
@@ -1317,6 +1334,9 @@ class PhotobucketIE(InfoExtractor):
 | 
			
		||||
			self._downloader.trouble(u'ERROR: Invalid URL: %s' % url)
 | 
			
		||||
			return
 | 
			
		||||
 | 
			
		||||
		# At this point we have a new video
 | 
			
		||||
		if self._downloader is not None:
 | 
			
		||||
			self._downloader.increment_downloads()
 | 
			
		||||
		video_id = mobj.group(1)
 | 
			
		||||
 | 
			
		||||
		video_extension = 'flv'
 | 
			
		||||
@@ -1392,13 +1412,16 @@ class YahooIE(InfoExtractor):
 | 
			
		||||
	def _real_initialize(self):
 | 
			
		||||
		return
 | 
			
		||||
 | 
			
		||||
	def _real_extract(self, url):
 | 
			
		||||
	def _real_extract(self, url, new_video=True):
 | 
			
		||||
		# Extract ID from URL
 | 
			
		||||
		mobj = re.match(self._VALID_URL, url)
 | 
			
		||||
		if mobj is None:
 | 
			
		||||
			self._downloader.trouble(u'ERROR: Invalid URL: %s' % url)
 | 
			
		||||
			return
 | 
			
		||||
 | 
			
		||||
		# At this point we have a new video
 | 
			
		||||
		if self._downloader is not None and new_video:
 | 
			
		||||
			self._downloader.increment_downloads()
 | 
			
		||||
		video_id = mobj.group(2)
 | 
			
		||||
		video_extension = 'flv'
 | 
			
		||||
 | 
			
		||||
@@ -1425,7 +1448,7 @@ class YahooIE(InfoExtractor):
 | 
			
		||||
			yahoo_vid = mobj.group(1)
 | 
			
		||||
 | 
			
		||||
			url = 'http://video.yahoo.com/watch/%s/%s' % (yahoo_vid, yahoo_id)
 | 
			
		||||
			return self._real_extract(url)
 | 
			
		||||
			return self._real_extract(url, new_video=False)
 | 
			
		||||
 | 
			
		||||
		# Retrieve video webpage to extract further information
 | 
			
		||||
		request = urllib2.Request(url)
 | 
			
		||||
@@ -1544,6 +1567,10 @@ class GenericIE(InfoExtractor):
 | 
			
		||||
		return
 | 
			
		||||
 | 
			
		||||
	def _real_extract(self, url):
 | 
			
		||||
		# At this point we have a new video
 | 
			
		||||
		if self._downloader is not None:
 | 
			
		||||
			self._downloader.increment_downloads()
 | 
			
		||||
 | 
			
		||||
		video_id = url.split('/')[-1]
 | 
			
		||||
		request = urllib2.Request(url)
 | 
			
		||||
		try:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user