本文整理汇总了Python中youtube_dl.YoutubeDL.add_post_processor方法的典型用法代码示例。如果您正苦于以下问题:Python YoutubeDL.add_post_processor方法的具体用法?Python YoutubeDL.add_post_processor怎么用?Python YoutubeDL.add_post_processor使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类youtube_dl.YoutubeDL
的用法示例。
在下文中一共展示了YoutubeDL.add_post_processor方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: download_youtube
# 需要导入模块: from youtube_dl import YoutubeDL [as 别名]
# 或者: from youtube_dl.YoutubeDL import add_post_processor [as 别名]
def download_youtube(url,filepath,params=None):
tmp_filepath = compat_str(filepath)
print "download to",tmp_filepath
params = params or settings.youtube_params
params.update({"outtmpl":tmp_filepath,"daterange":DateRange(None,None)})
y = YoutubeDL(params)
#y = YoutubeDL({"format":"18/34/35/5/17","outtmpl":filepath})
#y.print_debug_header()
y.add_default_info_extractors()
y.add_post_processor(FFmpegExtractAudioPP(preferredcodec="m4a",preferredquality=5, nopostoverwrites=False))
value = y.download([url])
#cmd = 'youtube-dl {url} --extract-audio --audio-format wav -o {filepath}'.format(url=url,filepath=filepath)
#print cmd
#result = subprocess.call(cmd,shell=True)
#print result
return True
示例2: run
# 需要导入模块: from youtube_dl import YoutubeDL [as 别名]
# 或者: from youtube_dl.YoutubeDL import add_post_processor [as 别名]
def run(self, release_task_pk: int, custom_options: Optional[dict]=None) -> None:
try:
with transaction.atomic():
self.download_task = DownloadTask.objects.get(pk=release_task_pk)
self.download_task.downloader = DownloadTask.YOUTUBE_DL
self.download_task.celery_id = self.request.id
self.download_task.state = DownloadTask.DOWNLOADING
self.download_task.started_at = timezone.now()
self.download_task.save()
options = copy.deepcopy(self.YOUTUBE_DL_OPTIONS)
options['outtmpl'] = options['outtmpl'].format(self.request.id.replace('-', ''))
options['progress_hooks'] = [self._progress_hook]
if custom_options:
custom_options = self._clean_options(custom_options)
options.update(custom_options)
downloader = YoutubeDL(options)
downloader.add_post_processor(self._get_postprocessor())
downloader.download([self.download_task.url])
except SystemExit:
try:
os.remove(self._last_status['tmpfilename'])
except AttributeError:
return
except:
log.exception('Exception while removing temporary file. id={0}, tempfilename={1}'.format(
release_task_pk, self._last_status['tmpfilename'])
)
raise
except (BaseDatabaseError, ObjectDoesNotExist, MultipleObjectsReturned):
# Hope we've caught everything
log.exception('Exception while updating DownloadTask. id={0}'.format(release_task_pk))
raise
except:
try:
with transaction.atomic():
self.download_task.state = DownloadTask.ERROR
self.download_task.finished_at = timezone.now()
self.download_task.save()
self.download_task.tracebacks.create(text=traceback.format_exc())
raise
except (BaseDatabaseError, ObjectDoesNotExist, MultipleObjectsReturned):
log.exception('Exception while changing DownloadTask.state to ERROR. id={0}'.format(release_task_pk))
raise
示例3: run_pp
# 需要导入模块: from youtube_dl import YoutubeDL [as 别名]
# 或者: from youtube_dl.YoutubeDL import add_post_processor [as 别名]
def run_pp(params, PP):
with open(filename, 'wt') as f:
f.write('EXAMPLE')
ydl = YoutubeDL(params)
ydl.add_post_processor(PP())
ydl.post_process(filename, {'filepath': filename})
示例4: YoutubeDL
# 需要导入模块: from youtube_dl import YoutubeDL [as 别名]
# 或者: from youtube_dl.YoutubeDL import add_post_processor [as 别名]
from flask.ext.restful import reqparse, abort, Api, Resource
from youtube_dl import YoutubeDL
from youtube_dl import FFmpegExtractAudioPP
import redis
import boto
import boto.s3.connection
from boto.s3.key import Key
ydl = YoutubeDL({
'outtmpl': '%(id)s.%(ext)s',
'format': 'bestaudio/best',
'verbose': 'yes',
})
ydl.add_default_info_extractors()
ydl.add_post_processor(FFmpegExtractAudioPP(preferredcodec='mp3', preferredquality='5', nopostoverwrites=False))
ydl.print_debug_header()
app = Flask(__name__)
api = Api(app)
conn = boto.connect_s3()
bucket = conn.get_bucket('turntable.dongs.in')
r = redis.Redis("localhost")
def abort_if_song_doesnt_exist(song_id):
abort(404, message="song {} doesn't exist".format(song_id))
parser = reqparse.RequestParser()
parser.add_argument('hash', type=str)
parser.add_argument('username', type=str)