[postprocessor/ffmpeg] Simplify metadata preparation and add track related metafields (Closes #9357)
This commit is contained in:
		
							parent
							
								
									6f27bf1c74
								
							
						
					
					
						commit
						4bd143a3a0
					
				
					 1 changed files with 24 additions and 17 deletions
				
			
		| 
						 | 
				
			
			@ -389,23 +389,30 @@ class FFmpegEmbedSubtitlePP(FFmpegPostProcessor):
 | 
			
		|||
class FFmpegMetadataPP(FFmpegPostProcessor):
 | 
			
		||||
    def run(self, info):
 | 
			
		||||
        metadata = {}
 | 
			
		||||
        if info.get('title') is not None:
 | 
			
		||||
            metadata['title'] = info['title']
 | 
			
		||||
        if info.get('upload_date') is not None:
 | 
			
		||||
            metadata['date'] = info['upload_date']
 | 
			
		||||
        if info.get('artist') is not None:
 | 
			
		||||
            metadata['artist'] = info['artist']
 | 
			
		||||
        elif info.get('uploader') is not None:
 | 
			
		||||
            metadata['artist'] = info['uploader']
 | 
			
		||||
        elif info.get('uploader_id') is not None:
 | 
			
		||||
            metadata['artist'] = info['uploader_id']
 | 
			
		||||
        if info.get('description') is not None:
 | 
			
		||||
            metadata['description'] = info['description']
 | 
			
		||||
            metadata['comment'] = info['description']
 | 
			
		||||
        if info.get('webpage_url') is not None:
 | 
			
		||||
            metadata['purl'] = info['webpage_url']
 | 
			
		||||
        if info.get('album') is not None:
 | 
			
		||||
            metadata['album'] = info['album']
 | 
			
		||||
 | 
			
		||||
        def add(meta_list, info_list=None):
 | 
			
		||||
            if not info_list:
 | 
			
		||||
                info_list = meta_list
 | 
			
		||||
            if not isinstance(meta_list, (list, tuple)):
 | 
			
		||||
                meta_list = (meta_list,)
 | 
			
		||||
            if not isinstance(info_list, (list, tuple)):
 | 
			
		||||
                info_list = (info_list,)
 | 
			
		||||
            for info_f in info_list:
 | 
			
		||||
                if info.get(info_f) is not None:
 | 
			
		||||
                    for meta_f in meta_list:
 | 
			
		||||
                        metadata[meta_f] = info[info_f]
 | 
			
		||||
                    break
 | 
			
		||||
 | 
			
		||||
        add('title', ('track', 'title'))
 | 
			
		||||
        add('date', 'upload_date')
 | 
			
		||||
        add(('description', 'comment'), 'description')
 | 
			
		||||
        add('purl', 'webpage_url')
 | 
			
		||||
        add('track', 'track_number')
 | 
			
		||||
        add('artist', ('artist', 'creator', 'uploader', 'uploader_id'))
 | 
			
		||||
        add('genre')
 | 
			
		||||
        add('album')
 | 
			
		||||
        add('album_artist')
 | 
			
		||||
        add('disc', 'disc_number')
 | 
			
		||||
 | 
			
		||||
        if not metadata:
 | 
			
		||||
            self._downloader.to_screen('[ffmpeg] There isn\'t any metadata to add')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue