需求说明(bug出处):
简单说:下载youtube的视频,嵌入翻译好的中文字幕。
详细说(可略过):
阿里的海外服务器需要布一个Web Service---用以接收国内(本地服务器)的请求,
然后用youtube-dl下载需要的视频(此bug出处),上传国内阿里服务器OSS,
之后做音频抽取,语音识别,翻译,嵌入字幕。
Django views中下载视频核心代码:
以下是:自动选择下载最高质量视频的参数
bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best
没加这个参数之前代码:
cmd1 = f"""youtube-dl.exe -f --write-auto-sub --sub-lang en --convert-subs srt -o {task_id} {url}""" cmd2 = f"""youtube-dl.exe -f --write-sub --sub-lang en --convert-subs srt -o {task_id} {url}"""
是跑的通的,可以下字幕下视频。
加上后,用postman发请求,就不能行了,
会报错 ERROR: requested format not available:
意思是,请求格式不对。
左查右查也查不到原因,
再去看看官方文档:
https://github.com/ytdl-org/youtube-dl/blob/master/README.md#format-selection
我靠,这也行,于是单引号改双引号,再用postman发请求,试试看:
OK跑通,视频和字幕顺利下载:
======================================================
同时测出了youtube-dl 运行的返回值,以待后续异常处理用:
没有错误是0
有错误是有1。
Happy listening and learning ! (*^▽^*) !