!注意自述文件尚未更新
基于 Quart 的 API,用于下载 YouTube 视频和音频、检索视频元数据以及处理字幕。此 API 允许您以编程方式与 YouTube 内容进行交互,利用后台任务来管理临时文件并提供高效的下载。
下载视频和音频:检索具有指定分辨率和比特率的内容。
检索视频元数据:获取标题、观看次数和频道信息等详细信息。
处理字幕:以 SRT 格式获取并保存字幕。
检查存储:下载前确保有足够的存储空间。
Python 3.7+
FFmpeg
requirements.txt
依赖项
克隆存储库
git 克隆 https://github.com/DannyAkintunde/YouTube-dl-apicd Youtube-dl-api
运行安装脚本
执行install.sh
脚本安装Python依赖和系统包:
chmod +x install.sh ./安装.sh
该脚本将:
安装requirements.txt
中列出的Python依赖项
更新包列表
安装 FFmpeg
验证 FFmpeg 安装
调整settings.py
文件中的配置设置:
DEBUG
:启用或禁用调试模式(默认值: True
)。
PROXY
:以 http_proxy,https_proxy 格式配置代理。
AUTH
:配置身份验证(默认值: False
)。
ACCESS_TOKEN
:用于访问受保护资源的令牌(如果AUTH
为True
则需要)。
REFRESH_TOKEN
:用于刷新访问的令牌(如果AUTH
为True
则需要)。
EXPIRES
:访问令牌的到期时间(如果AUTH
为True
则需要)。
VISITOR_DATA
:访客跟踪数据(如果AUTH
为True
则需要)。
PO_TOKEN
:采购订单的令牌(如果AUTH
为True
则需要)。
MAX_DOWNLOAD_SIZE
:下载的最大文件大小(默认值: 2 GiB
)。
MAX_SEARCH_AMOUNT
:视频搜索结果的最大数量(默认值: 25
)。
MIN_SEARCH_AMOUNT
:视频搜索结果的最小数量(默认值: 2
)。
DEFAULT_SEARCH_AMOUNT
:视频搜索结果的默认数量(默认值: 20
)。
EXPIRATION_DELAY
:临时文件过期的延迟(默认值: 1800 seconds
)。
TEMP_DIR
:存储临时文件的目录(默认值: 'temp_files'
)。
AUTH_DIR
:保存身份验证文件的路径(默认值: 'auth'
)。
AUTH_FILE_NAME
:身份验证文件的名称(默认值: 'temp.json'
)。
CODECS
:要使用的视频和音频编解码器列表(默认值: 'avc1,aac'
)。
获取/ping
描述:检查 API 状态。
回复:
{“消息”:“乒乓球”}
200 OK
: {"message": "pong"}
获取/search
描述:根据查询搜索 YouTube 视频。
查询参数:
q
或query
:搜索查询。
请求示例:
GET /search?q=python+教程
响应示例:
{ {“长度”:20,“结果”:[ { "accessibility": {"duration": "6 小时, 14 分钟, 7 秒","title": "Python 教程 - Python 初学者完整课程(与 Mosh 一起编程)5 年前 6 小时 14 分钟 41,059,791 次浏览" } ,“频道”:{“id”:“UCWv7vMbMWH4-V0ZXdmDpPBA”,“链接”: "https://www.youtube.com/channel/UCWv7vMbMWH4-V0ZXdmDpPBA","name": "用 Mosh 编程","thumbnails": [ {“高度”:68,“网址”:“https://yt3.ggpht.com/lCeCb47hCbXWFa0I4gi8uWDHzWSs7sjK4FDmk7lFEUMRNp6QRzIQOkwaKhwv7eNKZacRI2uR = s68-ck-c0x00ffffff-no-rj”,“宽度”:68} ] }, "描述片段": [ { "text": "成为一个"}, { "bold": true, "text": "Python"}, { "text": "亲!这个全面"}, { "bold": true, "text": "教程"}, { "text": "带你从初学者到英雄,涵盖基础知识、机器学习和......"} ]、“持续时间”:“6:14:07”、“id”:“_uQrJ0TkZlc”、“链接”:“https://www.youtube.com/watch?v=_uQrJ0TkZlc”、“发布时间”:“5几年前", "richThumbnail": {"height": 180,"url": “https://i.ytimg.com/an_webp/_uQrJ0TkZlc/mqdefault_6s.webp?du=3000&sqp=CLf547cG&rs=AOn4CLCAcnB5okiLttIEMkLM9bb-3w28AQ”,“宽度”:320},“shelfTitle”:null,“缩略图”:[ {“高度”:202,“网址”:“https://i.ytimg.com/vi/_uQrJ0TkZlc/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCQfkbApoaN-_QBOuiyHzWJOiziEA”, “宽度”:360}, {“高度”:404,“网址”: “https://i.ytimg.com/vi/_uQrJ0TkZlc/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCpUFKfUMVNbg8mqTcZ8UdSUjpilw”,“宽度”:720} ], "title": "Python教程-Python初学者全套教程", "type": "video", "viewCount": {"short": "41M 浏览次数","text": "41,059,791 浏览次数" } }//...更多结果在这里 ], "search": "python 教程", "search_id": "00b5a31c-30d7-4d96-92e5-42b871062bca", "search_suggestions": ["python 教程","python 初学者教程","python 教程 2024" ] }
200 OK
:搜索结果。
400 Bad Request
:查询参数缺失或无效。
500 Internal Server Error
:服务器端错误。
获取/info
描述:检索 YouTube 视频的元数据。
查询参数:
url
:YouTube 视频的 URL。
请求示例:
获取 /info?url=https://youtube.com/watch?v=dQw4w9WgXcQ
响应示例:
{“作者”:“瑞克·阿斯特利”,“比特率”:[“160kbps”,“128kbps”,“70kbps”,“50kbps” ], "channel_id": "UCuAXFkgsw1L7xaCfnd5JJOw", "channel_url": "https://www.youtube.com/channel/UCuAXFkgsw1L7xaCfnd5JJOw", “description”:“Rick Astley 的“Never Gonna Give You Up”的官方视频。nn新专辑“Are We There Yet?”现已发行:在此下载:https://RickAstley.lnk.to/AreWeThereYetFA/itunesnn 《Never Gonna Give You Up》于 1987 年 7 月发行后风靡全球,在 25 个国家/地区的排行榜上名列前茅,其中包括 Rick 的祖国英国和美国美国告示牌热门 100 强。它还赢得了 1988 年全英音乐奖最佳单曲奖。斯托克·艾特肯和沃特曼创作并制作了这首歌曲,这是该歌曲的主打歌曲Rick 的首张 LP“Whenever You Need Somebody”中的单曲和主打歌曲这张专辑本身就在英国排名第一,并且在全球销量超过 1500 万张。这段传奇视频由 Simon West 执导,后来他又制作了该专辑。好莱坞大片,如 Con Air、Lara Croft – Tomb Raider 和 The Expendables 2。该视频于 2021 年 7 月 28 日突破了 10 亿 YouTube 观看次数里程碑。nn订阅 Rick Astley 官方YouTube 频道:https://RickAstley.lnk.to/YTSubIDnn 关注 Rick Astley:nFacebook:https://RickAstley.lnk.to/FBFollowID nTwitter:https://RickAstley.lnk.to/TwitterID nInstagram:https://RickAstley .lnk.to/InstagramID n网站:https://RickAstley.lnk.to/storeID nTikTok: https://RickAstley.lnk.to/TikTokIDnn聆听 Rick Astley:nSpotify:https://RickAstley.lnk.to/SpotifyID nApple Music:https://RickAstley.lnk.to/AppleMusicID nAmazon Music:https://RickAstley .lnk.to/AmazonMusicID nDeezer:https://RickAstley.lnk.to/DeezerID歌词:n我们对爱并不陌生n你知道规则,所以我也知道n完全的承诺就是我所想的n你不会从任何其他人那里得到这个n我只是想告诉你我的感受n必须让你理解n永远不会放弃你n永远不会让你失望永远不会到处乱跑抛弃你永远不会让你哭泣永远不会说再见永远不会说谎伤害你我们已经认识彼此这么久了你的心一直在痛,但你太害羞了,不敢说,我们都知道发生了什么,我们都知道这个游戏,我们会玩它,如果你问我感觉如何,别告诉我你太盲目了永远不会放弃你永远不会让你失望永远不会跑来跑去抛弃你永远不会让你哭泣永远不会说再见永远不会说谎而受伤younn#RickAstley #NeverGonnaGiveYouUp #WheneverYouNeedSomebody #OfficialMusicVideo", "id": "dQw4w9WgXcQ", "关键词": ["rick astley","永远不会放弃你","nggyu","永远不会放弃你歌词", “里克·罗尔”、“里克·罗尔”、“里克·阿斯特利”官方”、“rickrolled”、“Fortnite 歌曲”、“Fortnite 活动”、“Fortnite 舞蹈”、“fortnite 永远不会放弃你”、“rick roll”、“rickrolling”、“rick Rolling”、“永远不会给你向上”、“80 年代音乐”、“瑞克·阿斯特利新”、“动画视频”、“rickroll”、“模因歌曲”、“永远不会放弃歌词”、“瑞克·阿斯特利” 2022”、“永远不会让你失望”、“动画”、“rick rolls 2022”、“永远不会放弃你卡拉 OK” ],“长度”:212,“发布日期”:空,“分辨率”:[“1080p”,“720p”,“480p”,“360p”,“240p”,“144p” ], "subtitles": ["en"], "thumbnail_url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg", "title": "Rick Astley - Never Gonna Give You Up (官方音乐视频)", "url": {"audio": { “128kbps”: “https://rr2---sn-nx5s7n76.googlevideo.com/videoplayback?expire=1727620629&ei=tBH5ZuXtPK32sfIPmpfRaA&ip=34.213.214.55&id=o-AFciugVQSUntvlu-EtzrcBd4W06EaI8LnUezpJa hzv8S&itag=140&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=7c&mm=31%2C2 9&mn=sn-nx5s7n76%2Csn-nx57ynsk&ms=au%2Crdu&mv=m&mvi=2&pl=17&initcwndbps=906250&siu =1&bui=AXLXGFTLtpYeBi-WkfbOrD6x11PgTTzzR3XccdPZFtz4stuPKtFQJJZUbJtbt6KJJdElaNlI6w &spc=54MbxZ-8cHiojJiaToWtUNunjsdmNSRVaZsp33b3yJk5hWz-XyvPBPMvqlmBFtXq-StOzuzECw&vp rv=1&svpuc=1&mime=音频%2Fmp4&ns=LcPciQPCIlyTAh4bUR1Ry3oQ&rqh=1&gir=yes&clen=3433 605&dur=212.091&lmt=1717047821006373&mt=1727598776&fvip=4&keepalive=是&fexp=51299 152%2C51300760&c=WEB&sefc=1&txp=4532434&n=PBkHSDz29n0qdg&sparams=过期%2Cei%2Cip %2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Csiu%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2 CNs%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Ci nitcwndbps&lsig=ABPmVW0wRQIhAL4XTegKBWTyhPvlGwVYx5b6wKFXGaJnWz5hPoyu2V1jAiBX3ZHpSl -MMXhVWpt3O5ds3INf0Wlr-pbzhcj9KywORA%3D%3D&pot=MnRLRTG8kBazMEt9RGwvFceBv40KENnpHt lDrguGDKni7A-azrTC0L_GYy7Pz-fH6mqHFsS7CmHJ3c3g9Y6z-RqqRsbYhMeXWbiXmyTXLpKRXOkQFbgs jNeRohf9afkINW7suFEVcBe0OedclwPPNYTqkcXvKA%3D%3D&sig=AJfQdSswRQIhALzVUs_1ZBhAU4vl 4-_gWy8D_IuAVQZJzFanrawDMKOsAiAGBw-Q385K5JzdWj80j9eKH3yKDR0xsKxZTyKPU2Ubkg%3D%3D", “160kbps”: “https://rr2---sn-nx5s7n76.googlevideo.com/videoplayback?expire=1727620629&ei=tBH5ZuXtPK32sfIPmpfRaA&ip=34.213.214.55&id=o-AFciugVQSUntvlu-EtzrcBd4W06EaI8LnUezpJa hzv8S&itag=251&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=7c&mm=31%2C2 9&mn=sn-nx5s7n76%2Csn-nx57ynsk&ms=au%2Crdu&mv=m&mvi=2&pl=17&initcwndbps=906250&si u=1&bui=AXLXGFTLtpYeBi-WkfbOrD6x11PgTTzzR3XccdPZFtz4stuPKtFQJJZUbJtbt6KJJdElaNlI6 w&spc=54MbxZ-8cHiojJiaToWtUNunjsdmNSRVaZsp33b3yJk5hWz-XyvPBPMvqlmBFtXq-StOzuzECw& vprv=1&svpuc=1&mime=音频%2Fwebm&ns=LcPciQPCIlyTAh4bUR1Ry3oQ&rqh=1&gir=yes&clen=3 437753&dur=212.061&lmt=1717047822556748&mt=1727598776&fvip=4&keepalive=是&fexp=5 1299152%2C51300760&c=WEB&sefc=1&txp=4532434&n=PBkHSDz29n0qdg&sparams=过期%2Cei% 2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Csiu%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cm ime%2Cns%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cp l%2Cinitcwndbps&lsig=ABPmVW0wRQIhAL4XTegKBWTyhPvlGwVYx5b6wKFXGaJnWz5hPoyu2V1jAiBX 3ZHpSl-MMXhVWpt3O5ds3INf0Wlr-pbzhcj9KywORA%3D%3D&pot=MnRLRTG8kBazMEt9RGwvFceBv40K ENnpHtlDrguGDKni7A-azrTC0L_GYy7Pz-fH6mqHFsS7CmHJ3c3g9Y6z-RqqRsbYhMeXWbiXmyTXLpKRX OkQFbgSjNeRohf9afkINW7suFEVcBe0OedclwPPNYTqkcXvKA%3D%3D&sig=AJfQdSswRAIgRgmVXNz6G XZTa8wFsnP1g7VTKkAinxQ2MeL4L7_PpUUCIHgo1DpARUjGV3QpFS06_Q9xdzrUmYnQWyWm0VhX-HFS”, “50kbps”: “https://rr2---sn-nx5s7n76.googlevideo.com/videoplayback?expire=1727620629&ei=tBH5ZuXtPK32sfIPmpfRaA&ip=34.213.214.55&id=o-AFciugVQSUntvlu-EtzrcBd4W06EaI8LnUezpJa hzv8S&itag=249&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=7c&mm=31%2C2 9&mn=sn-nx5s7n76%2Csn-nx57ynsk&ms=au%2Crdu&mv=m&mvi=2&pl=17&initcwndbps=906250&siu =1&bui=AXLXGFTLtpYeBi-WkfbOrD6x11PgTTzzR3XccdPZFtz4stuPKtFQJJZUbJtbt6KJJdElaNlI6w &spc=54MbxZ-8cHiojJiaToWtUNunjsdmNSRVaZsp33b3yJk5hWz-XyvPBPMvqlmBFtXq-StOzuzECw&vp rv=1&svpuc=1&mime=音频%2Fwebm&ns=LcPciQPCIlyTAh4bUR1Ry3oQ&rqh=1&gir=yes&clen=123 2413&dur=212.061&lmt=1717047819209140&mt=1727598776&fvip=4&keepalive=是&fexp=5129 9152%2C51300760&c=WEB&sefc=1&txp=4532434&n=PBkHSDz29n0qdg&sparams=过期%2Cei%2Ci p%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Csiu%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime %2Cns%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2 Cinitcwndbps&lsig=ABPmVW0wRQIhAL4XTegKBWTyhPvlGwVYx5b6wKFXGaJnWz5hPoyu2V1jAiBX3ZHp Sl-MMXhVWpt3O5ds3INf0Wlr-pbzhcj9KywORA%3D%3D&pot=MnRLRTG8kBazMEt9RGwvFceBv40KENnp HtlDrguGDKni7A-azrTC0L_GYy7Pz-fH6mqHFsS7CmHJ3c3g9Y6z-RqqRsbYhMeXWbiXmyTXLpKRXOkQFb gSjNeRohf9afkINW7suFEVcBe0OedclwPPNYTqkcXvKA%3D%3D&sig=AJfQdSswRgIhANYw5Elp9cly-p k9fZtviQxozUwSbmeyiPSX7xxOHywGAiEAoHiFDUHUA-S4m-WjPNnlnSXp65opUramacG4gcucmFg%3D", “70kbps”: “https://rr2---sn-nx5s7n76.googlevideo.com/videoplayback?expire=1727620629&ei=tBH5ZuXtPK32sfIPmpfRaA&ip=34.213.214.55&id=o-AFciugVQSUntvlu-EtzrcBd4W06EaI8LnUezpJ ahzv8S&itag=250&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=7c&mm=31%2C 29&mn=sn-nx5s7n76%2Csn-nx57ynsk&ms=au%2Crdu&mv=m&mvi=2&pl=17&initcwndbps=906250&s iu=1&bui=AXLXGFTLtpYeBi-WkfbOrD6x11PgTTzzR3XccdPZFtz4stuPKtFQJJZUbJtbt6KJJdElaNliI 6w&spc=54MbxZ-8cHiojJiaToWtUNunjsdmNSRVaZsp33b3yJk5hWz-XyvPBPMvqlmBFtXq-StOzuzECw &vprv=1&svpuc=1&mime=音频%2Fwebm&ns=LcPciQPCIlyTAh4bUR1Ry3oQ&rqh=1&gir=yes&clen= 1630086&dur=212.061&lmt=1717047822840442&mt=1727598776&fvip=4&keepalive=是&fexp= 51299152%2C51300760&c=WEB&sefc=1&txp=4532434&n=PBkHSDz29n0qdg&sparams=过期%2Cei %2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Csiu%2Cbui%2Cspc%2Cvprv%2Csvpuc%2C mime%2Cns%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2C pl%2Cinitcwndbps&lsig=ABPmVW0wRQIhAL4XTegKBWTyhPvlGwVYx5b6wKFXGaJnWz5hPoyu2V1jAiB X3ZHpSl-MMXhVWpt3O5ds3INf0Wlr-pbzhcj9KywORA%3D%3D&pot=MnRLRTG8kBazMEt9RGwvFceBv40 KENnpHtlDrguGDKni7A-azrTC0L_GYy7Pz-fH6mqHFsS7CmHJ3c3g9Y6z-RqqRsbYhMeXWbiXmyTXLpKR XOkQFbgSjNeRohf9afkINW7suFEVcBe0OedclwPPNYTqkcXvKA%3D%3D&sig=AJfQdSswRAIgcZBnQius U46Et4rvk1EP96LN12X6zEturr49Dt3IdtgCCaL6e5X_7qoN782XgA94aCWl9APN7sqdpZDfnSQ3n4a" },“视频”: { “360p”: “https://rr2---sn-nx5s7n76.googlevideo.com/videoplayback?expire=1727620629&ei=tBH5ZuXtPK32sfIPmpfRaA&ip=34.213.214.55&id=o-AFciugVQSUntvlu-EtzrcBd4W06EaI8LnUezpJ ahzv8S&itag=18&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=7c&mm=31%2C 29&mn=sn-nx5s7n76%2Csn-nx57ynsk&ms=au%2Crdu&mv=m&mvi=2&pl=17&initcwndbps=906250&s iu=1&bui=AXLXGFRb9LWg32JPSnGMKJTLm8K3ulHeoFqy6jW98J3ow17XhWM6hHiFPFeuDi2q4X9h4Fb CSw&spc=54MbxZ-_cHiojJiaToWtUNunjsdmNSRVaZsp33b3yJk5hWz-XyvPBPMvqlmBFtXq-StOzuz0D mJD&vprv=1&svpuc=1&mime=video%2Fmp4&ns=8KIxDqAhSq857Jj0EsIv_rAQ&rqh=1&cnr=14&rat ebypass=是&dur=212.091&lmt=1717051812678016&mt=1727598776&fvip=4&fexp=51299152%2 C51300760&c=WEB&sefc=1&txp=4538434&n=5BzkN_PgDUfS4g&sparams=expire%2Cei%2Cip%2Ci d%2Citag%2Csource%2Crequiressl%2Cxpc%2Csiu%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cns %2Crqh%2Ccnr%2Cratebypass%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl %2Cinitcwndbps&lsig=ABPmVW0wRQIhAL4XTegKBWTyhPvlGwVYx5b6wKFXGaJnWz5hPoyu2V1jAiBX3 ZHpSl-MMXhVWpt3O5ds3INf0Wlr-pbzhcj9KywORA%3D%3D&pot=MnRLRTG8kBazMEt9RGwvFceBv40K ENnpHtlDrguGDKni7A-azrTC0L_GYy7Pz-fH6mqHFsS7CmHJ3c3g9Y6z-RqqRsbYhMeXWbiXmyTXLpKRX OkQFbgSjNeRohf9afkINW7suFEVcBe0OedclwPPNYTqkcXvKA%3D%3D&sig=AJfQdSswRAIgfjB7dIm2 WxtJENp3UQMt-R6AOxAG42tSR_R8AY1VOjQCIHZTT43adN0Wy7XAicHL3yPavg78sous0M4orEjRw98v" } },“观看次数”:1576357050,“watch_url”:“https://youtube.com/watch?v=dQw4w9WgXcQ”}
200 OK
:视频元数据。
400 Bad Request
:URL 无效或缺少参数。
500 Internal Server Error
:服务器端错误。
发布/download
描述:以可用的最高分辨率下载 YouTube 内容。
请求正文:
{“url”:“https://youtube.com/watch?v=dQw4w9WgXcQ”,“字幕”:{“burn”:true,“lang”:“en” }, “链接”: false}
响应示例(文件下载):
如果link
false
:
响应将是文件下载。
如果link
为true
:
{“download_link”:“http://example.com/temp_file/temp_Python_Tutorial_for_Beginners.mp4”}
200 OK
:下载链接或文件。
400 Bad Request
:无效的 URL 或参数。
500 Internal Server Error
:服务器端错误。
POST /download/<resolution>
描述:以指定分辨率下载 YouTube 内容。
请求正文:
{“url”:“https://youtube.com/watch?v=dQw4w9WgXcQ”,“比特率”:“128kbps”,“字幕”:{“burn”:true,“lang”:“en” }, “链接”: false}
响应示例(文件下载):
如果link
false
:
响应将是文件下载。
如果link
为true
:
{“download_link”:“http://example.com/temp_file/temp_Python_Tutorial_360p.mp4”}
200 OK
:下载链接或文件。
400 Bad Request
:无效的分辨率、比特率或 URL。
500 Internal Server Error
:服务器端错误。
发布/download_audio
描述:下载最高质量的 YouTube 音频。
请求正文:
{“url”:“https://youtube.com/watch?v=dQw4w9WgXcQ”,“链接”:false}
响应示例(文件下载):
如果link
false
:
响应将是文件下载。
如果link
为true
:
{“download_link”:“http://example.com/temp_file/temp_Python_Tutorial.mp3”}
200 OK
:下载链接或文件。
400 Bad Request
:无效的 URL。
500 Internal Server Error
:服务器端错误。
POST /download_audio/<bitrate>
描述:下载指定比特率的 YouTube 音频。
请求正文:
{“url”:“https://youtube.com/watch?v=dQw4w9WgXcQ”,“链接”:false}
响应示例(文件下载):
如果link
false
:
响应将是文件下载。
如果link
为true
:
{“download_link”:“http://example.com/temp_file/temp_Python_Tutorial_48kbps.mp3”}
200 OK
:下载链接或文件。
400 Bad Request
:无效的比特率或 URL。
500 Internal Server Error
:服务器端错误。
GET /captions/<lang>
描述:检索 YouTube 视频的字幕。
查询参数:
url
:YouTube 视频的 URL。
请求示例:
GET /captions/en?url=https://youtube.com/watch?v=dQw4w9WgXcQ
响应示例:
{ "caption": "通常是我的孩子弄坏了东西,我是那个能修复它的人,但是当我的 DIY 泳池水冷却发生腐蚀时", "caption_json": [ { "duration": 5.679, "start": 0.12, "text": "通常是我的孩子打破东西并且"}, { "duration": 5.919, "start": 2.72, "text": "我是那个能修复它的人,但是什么时候"}, {“duration”:6.201,“start”:5.799,“text”:“我的 DIY 泳池水冷却中的腐蚀”} ], "文件": "http://youtube-dl-api.frii.site/temp_file/I%20broke%20my%20son's%20gaming%20PC%20and%20now%20I%E2%80%99m%20making%20him %20fix%20it.srt", "lang": "英语(自动生成)", "lang_code": “恩”}
200 OK
:字幕数据。
400 Bad Request
:无效的 URL 或语言代码。
500 Internal Server Error
:服务器端错误。
GET /temp_file/<filename>
描述:检索临时文件。
参数:
filename
:文件的名称。
请求示例:
获取 /temp_file/temp_Python_Tutorial_for_Beginners.mp4
响应示例:
如果文件存在,则响应将是文件下载。
如果文件不存在:
{“错误”:“找不到文件”}
200 OK
:文件下载。
404 Not Found
:文件未找到。
要运行 API,请使用:
蟒蛇主.py
清除临时文件:应用程序安排任务来清除超过 24 小时的临时文件。
检查app.log
以获取详细的错误消息。
确保TEMP_DIR
具有适当的权限。
验证 API 请求中的 YouTube 网址和参数。
该项目根据 AGPL-3 许可证获得许可。有关详细信息,请参阅LICENSE
文件。