我正在尝试编写一个lambda函数(最终),它将youtube-dl的输出直接写到S3。我建立原型的方法是将输出转储到stdout,然后将其重定向到S3中的一个文件,但这似乎是一个巨大的攻击。
import youtube_dl, sys
from smart_open import open
from contextlib import redirect_stdout
ydl_opts = { 'outtmpl': '-', 'cachedir': False, 'logtostderr': True }
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
with open('s3://<test-bucket>/test.mp4','wb') as f:
with redirect_stdout(f):
ydl.download(['https://www.youtube.com/watch?v=zzEYsi_P0RU'])
还有其他人有什么神奇的想法吗? 问题来源StackOverflow 地址:/questions/59384436/use-youtube-dl-to-download-directly-to-s3
下载youtube-dl 地址:在Github上边搜索youtube-dl 即可找到
下载完毕以后,
配置环境变量
添加两个代理变量
http_proxy http://127.0.0.1:1080 我的代理端口是1080
https_proxy http://127.0.0.1:1080
然后把刚才下载的youtube-dl.exe也配置环境变量
最后创建一个bat脚本,写上如下命令
xx盘符:\youtube\youtube-dl.exe %* --write-sub --no-mtime --output %%(title)s.%%(ext)s --no-part --restrict-filenames
然后cmd到此目录
运行
you2.bat url地址,即可下载
常用的下载命令
1、查看分辨率:
youtube-dl -F https://www.youtube.com/watch?v=_NMf1TpiFwY
技术分享图片
2、根据分辨率下载,比如下载1280*720的mp4,前面的数字是136
则可以:youtube-dl -f 136 https://www.youtube.com/watch?v=_NMf1TpiFwY
技术分享图片
另:youtube-dl -f best https://www.youtube.com/watch?v=_NMf1TpiFwY,这个命令一般也可以下载分辨率最好的视频,而是下载的有声音的视频中分辨率最好的。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。