]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/postprocessor/atomicparsley.py
   1 # -*- coding: utf-8 -*- 
   2 from __future__ 
import unicode_literals
 
   8 from .common 
import PostProcessor
 
  20 class AtomicParsleyPPError(PostProcessingError
): 
  24 class AtomicParsleyPP(PostProcessor
): 
  26         if not check_executable('AtomicParsley', ['-v']): 
  27             raise AtomicParsleyPPError('AtomicParsley was not found. Please install.') 
  29         filename 
= info
['filepath'] 
  30         temp_filename 
= prepend_extension(filename
, 'temp') 
  31         temp_thumbnail 
= prepend_extension(filename
, 'thumb') 
  33         if not info
.get('thumbnail'): 
  34             raise AtomicParsleyPPError('Thumbnail was not found. Nothing to do.') 
  36         compat_urlretrieve(info
['thumbnail'], temp_thumbnail
) 
  38         cmd 
= ['AtomicParsley', filename
, '--artwork', temp_thumbnail
, '-o', temp_filename
] 
  40         self
._downloader
.to_screen('[atomicparsley] Adding thumbnail to "%s"' % filename
) 
  42         if self
._downloader
.params
.get('verbose', False): 
  43             self
._downloader
.to_screen('[debug] AtomicParsley command line: %s' % shell_quote(cmd
)) 
  45         p 
= subprocess
.Popen(cmd
, stdout
=subprocess
.PIPE
, stderr
=subprocess
.PIPE
) 
  46         stdout
, stderr 
= p
.communicate() 
  49             msg 
= stderr
.decode('utf-8', 'replace').strip() 
  50             raise AtomicParsleyPPError(msg
) 
  52         os
.remove(encodeFilename(filename
)) 
  53         os
.remove(encodeFilename(temp_thumbnail
)) 
  54         os
.rename(encodeFilename(temp_filename
), encodeFilename(filename
))