!注意自述文件尚未更新
基于 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 次浏览" } , "channel": {"id": "UCWv7vMbMWH4-V0ZXdmDpPBA","link": "https://www.youtube.com/channel/UCWv7vMbMWH4-V0ZXdmDpPBA","name": "用 Mosh 编程","缩略图”:[ {“高度”: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"," width": 320 }, "shelfTitle": null, "thumbnails": [ {“高度”:202,“网址”:“https://i.ytimg.com/vi/_uQrJ0TkZlc/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCQfkbApoaN-_QBOuiyHzWJOiziEA”,“宽度”:36 0}, {“高度”: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) 执导,他后来制作了《空中监狱》、《劳拉·克劳馥 - 古墓丽影》和《敢死队 2》等好莱坞大片。该视频于 2021 年 7 月 28 日突破了 10 亿 YouTube 观看次数里程碑。订阅 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/TikTokIDnnListen致 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/AppleMusicID nDeezer:https://RickAstley.lnk.to/AppleMusicID /RickAstley.lnk.to/DeezerID nnLyrics:n我们对loven并不陌生你知道规则,我也知道我的想法是完全的承诺n你不会从任何其他人那里得到这个nn我只是想告诉你我的感受nGotta让你明白 永远不会放弃你 永远不会让你失望 永远不会到处乱跑而抛弃你 永远不会让你哭泣 永远不会说再见 永远不会说谎而伤害你 我们已经认识这么久了 你的心很痛,但你却羞于说出口里面我们都知道发生了什么n我们知道这个游戏,我们要玩它n如果你问我感觉如何n不要告诉我你太盲目了n永远不会放弃你n永远不会让你失望n永远不会到处乱跑沙漠你永远不会让你哭泣永远不会说再见永远不会说谎并伤害你#RickAstley #NeverGonnaGiveYouUp #WheneverYouNeedSomebody #OfficialMusicVideo", "id": "dQw4w9WgXcQ", "keywords": ["rick astley","Never Gonna Give You Up "、"nggyu"、"永远不会放弃歌词"、"rick roll"、"Rick Roll"、"rick astley 官方"、"rickrolled"、"Fortnite 歌曲"、"Fortnite 活动"、"Fortnite 舞蹈"、 “堡垒之夜永远不会放弃你”、“里克·罗尔”、“里克罗尔”、“里克·罗尔”、“永远不会放弃你”、“80 年代音乐”、“里克·阿斯特利·新”、“动画视频”、“里克罗尔” 、“meme 歌曲”、“永远不会放弃歌词”、“Rick Astley 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-EtzrcBd4W06EaI8LnUezpJah zv8S&itag=140&来源=youtube&requiressl=是&xpc=EgVo2aDSNQ%3D% 3D&mh=7c&mm=31%2C29&mn=sn-nx5s7n76%2Csn-nx57ynsk&ms=au%2Crdu&mv=m&mvi=2&pl=17&initcwndbps=906250&siu=1&bui=AXLXGFTLtpYeBi-WkfbOrD6x11PgTTzzR3XccdPZ Ftz4stuPKtFQJJZUbJtbt6KJJdElaNlI6w&spc=54MbxZ-8cHiojJiaToWtUNunjsdmNSRVaZsp33b3yJk5hWz-XyvPBPMvqlmBFtXq-StOzuzECw&vprv=1&svpuc=1&mime=音频%2Fmp4&ns= LcPciQPCIlyTAh4bUR1Ry3oQ&rqh=1&gir=是&clen=3433605&dur=212.091&lmt=1717047821006373&mt=1727598776&fvip=4&keepalive=是&fexp=51299152%2C5130076 0&c=WEB&sefc=1&txp=4532434&n=PBkHSDz29n0qdg&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Csiu%2Cbui %2Cspc%2Cvprv%2Csvpuc%2Csvpuc%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ABPmVW0wRQIhAL4XTegKBWTyhPvlG wVYx5b6wKFXGaJnWz5hPoyu2V1jAiBX3ZHpSl-MMXhVWpt3O5ds3INf0Wlr-pbzhcj9KywORA%3D%3D&pot=MnRLRTG8kBazMEt9RGwvFceBv40KENnpHtlDrguGDKni7A-azrTC0L_GYy7Pz -fH6mqHFsS7CmHJ3c3g9Y6z-RqqRsbYhMeXWbiXmyTXLpKRXOkQFbgSjNeRohf9afkINW7suFEVcBe0OedclwPPNYTqkcXvKA%3D%3D&sig=AJfQdSswRQIhALzVUS_1ZBhAU4vl4-_gWy8D_Iu AVQZJzFanrawDMKOsAiAGBw-Q385K5JzdWj80j9eKH3yKDR0xsKxZTyKPU2Ubkg%3D%3D", “160kbps”:“https://rr2---sn-nx5s7n76.googlevideo.com/videoplayback?expire=1727620629&ei=tBH5ZuXtPK32sfIPmpfRaA&ip=34.213.214.55&id=o-AFciugVQSUntvlu-EtzrcBd4W06EaI8LnUezpJah zv8S&itag=251&来源=youtube&requiressl=是&xpc=EgVo2aDSNQ%3D% 3D&mh=7c&mm=31%2C29&mn=sn-nx5s7n76%2Csn-nx57ynsk&ms=au%2Crdu&mv=m&mvi=2&pl=17&initcwndbps=906250&siu=1&bui=AXLXGFTLtpYeBi-WkfbOrD6x11PgTTzzR3XccdPZ Ftz4stuPKtFQJJZUbJtbt6KJJdElaNlI6w&spc=54MbxZ-8cHiojJiaToWtUNunjsdmNSRVaZsp33b3yJk5hWz-XyvPBPMvqlmBFtXq-StOzuzECw&vprv=1&svpuc=1&mime=音频%2Fwebm&ns= LcPciQPCIlyTAh4bUR1Ry3oQ&rqh=1&gir=是&clen=3437753&dur=212.061&lmt=1717047822556748&mt=1727598776&fvip=4&keepalive=是&fexp=51299152%2C5130076 0&c=WEB&sefc=1&txp=4532434&n=PBkHSDz29n0qdg&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Csiu%2Cbui %2Cspc%2Cvprv%2Csvpuc%2Csvpuc%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ABPmVW0wRQIhAL4XTegKBWTyhPvlG wVYx5b6wKFXGaJnWz5hPoyu2V1jAiBX3ZHpSl-MMXhVWpt3O5ds3INf0Wlr-pbzhcj9KywORA%3D%3D&pot=MnRLRTG8kBazMEt9RGwvFceBv40KENnpHtlDrguGDKni7A-azrTC0L_GYy7Pz -fH6mqHFsS7CmHJ3c3g9Y6z-RqqRsbYhMeXWbiXmyTXLpKRXOkQFbgSjNeRohf9afkINW7suFEVcBe0OedclwPPNYTqkcXvKA%3D%3D&sig=AJfQdSswRAIgRgmVXNz6GXZTa8wFsnP1g7VTKkA inxQ2MeL4L7_PpUUCIHgo1DpARUjGV3QpFS06_Q9xdzrUmYnQWyWm0VhX-HFS”, “50kbps”:“https://rr2---sn-nx5s7n76.googlevideo.com/videoplayback?expire=1727620629&ei=tBH5ZuXtPK32sfIPmpfRaA&ip=34.213.214.55&id=o-AFciugVQSUntvlu-EtzrcBd4W06EaI8LnUezpJahz v8S&itag=249&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D% 3D&mh=7c&mm=31%2C29&mn=sn-nx5s7n76%2Csn-nx57ynsk&ms=au%2Crdu&mv=m&mvi=2&pl=17&initcwndbps=906250&siu=1&bui=AXLXGFTLtpYeBi-WkfbOrD6x11PgTTzzR3XccdPZ Ftz4stuPKtFQJJZUbJtbt6KJJdElaNlI6w&spc=54MbxZ-8cHiojJiaToWtUNunjsdmNSRVaZsp33b3yJk5hWz-XyvPBPMvqlmBFtXq-StOzuzECw&vprv=1&svpuc=1&mime=音频%2Fwebm&ns= LcPciQPCIlyTAh4bUR1Ry3oQ&rqh=1&gir=是&clen=1232413&dur=212.061&lmt=1717047819209140&mt=1727598776&fvip=4&keepalive=是&fexp=51299152%2C5130076 0&c=WEB&sefc=1&txp=4532434&n=PBkHSDz29n0qdg&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Csiu%2Cbui %2Cspc%2Cvprv%2Csvpuc%2Csvpuc%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ABPmVW0wRQIhAL4XTegKBWTyhPvlG wVYx5b6wKFXGaJnWz5hPoyu2V1jAiBX3ZHpSl-MMXhVWpt3O5ds3INf0Wlr-pbzhcj9KywORA%3D%3D&pot=MnRLRTG8kBazMEt9RGwvFceBv40KENnpHtlDrguGDKni7A-azrTC0L_GYy7Pz -fH6mqHFsS7CmHJ3c3g9Y6z-RqqRsbYhMeXWbiXmyTXLpKRXOkQFbgSjNeRohf9afkINW7suFEVcBe0OedclwPPNYTqkcXvKA%3D%3D&sig=AJfQdSswRgIhANYw5Elp9cly-pk9fZtviQxozUwSb meyiPSX7xxOHywGAiEAoHiFDUHUA-S4m-WjPNnlnSXp65opUramacG4gcucmFg%3D", “70kbps”:“https://rr2---sn-nx5s7n76.googlevideo.com/videoplayback?expire=1727620629&ei=tBH5ZuXtPK32sfIPmpfRaA&ip=34.213.214.55&id=o-AFciugVQSUntvlu-EtzrcBd4W06EaI8LnUezpJahz v8S&itag=250&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D% 3D&mh=7c&mm=31%2C29&mn=sn-nx5s7n76%2Csn-nx57ynsk&ms=au%2Crdu&mv=m&mvi=2&pl=17&initcwndbps=906250&siu=1&bui=AXLXGFTLtpYeBi-WkfbOrD6x11PgTTzzR3XccdPZ Ftz4stuPKtFQJJZUbJtbt6KJJdElaNlI6w&spc=54MbxZ-8cHiojJiaToWtUNunjsdmNSRVaZsp33b3yJk5hWz-XyvPBPMvqlmBFtXq-StOzuzECw&vprv=1&svpuc=1&mime=音频%2Fwebm&ns= LcPciQPCIlyTAh4bUR1Ry3oQ&rqh=1&gir=是&clen=1630086&dur=212.061&lmt=1717047822840442&mt=1727598776&fvip=4&keepalive=是&fexp=51299152%2C5130076 0&c=WEB&sefc=1&txp=4532434&n=PBkHSDz29n0qdg&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Csiu%2Cbui %2Cspc%2Cvprv%2Csvpuc%2Csvpuc%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ABPmVW0wRQIhAL4XTegKBWTyhPvlG wVYx5b6wKFXGaJnWz5hPoyu2V1jAiBX3ZHpSl-MMXhVWpt3O5ds3INf0Wlr-pbzhcj9KywORA%3D%3D&pot=MnRLRTG8kBazMEt9RGwvFceBv40KENnpHtlDrguGDKni7A-azrTC0L_GYy7Pz -fH6mqHFsS7CmHJ3c3g9Y6z-RqqRsbYhMeXWbiXmyTXLpKRXOkQFbgSjNeRohf9afkINW7suFEVcBe0OedclwPPNYTqkcXvKA%3D%3D&sig=AJfQdSswRAIgcZBnQIUSU46Et4rVk1EP96LN12X 6zEturr49Dt3IdtgCICaL6e5X_7qoN782XgA94aCWl9APN7sqdpZDfnSQ3n4a" },“视频”: { “360p”:“https://rr2---sn-nx5s7n76.googlevideo.com/videoplayback?expire=1727620629&ei=tBH5ZuXtPK32sfIPmpfRaA&ip=34.213.214.55&id=o-AFciugVQSUntvlu-EtzrcBd4W06EaI8LnUezpJahzv 8S&itag=18&来源=youtube&requiressl=是&xpc=EgVo2aDSNQ%3D% 3D&mh=7c&mm=31%2C29&mn=sn-nx5s7n76%2Csn-nx57ynsk&ms=au%2Crdu&mv=m&mvi=2&pl=17&initcwndbps=906250&siu=1&bui=AXLXGFRb9LWg32JPSnGMKJTLm8K3ulHeoFqy6 jW98J3ow17XhWM6hHiFPFeuDi2q4X9h4FbCSw&spc=54MbxZ-_cHiojJiaToWtUNunjsdmNSRVaZsp33b3yJk5hWz-XyvPBPMvqlmBFtXq-StOzuz0DmJD&vprv=1&svpuc=1&mime=video%2Fmp4&ns =8KIxDqAhSq857Jj0EsIv_rAQ&rqh= 1&cnr=14&ratebypass=是&dur=212.091&lmt=1717051812678016&mt=1727598776&fvip=4&fexp=51299152%2C51300760&c=WEB&sefc=1&txp=4538434&n=5BzkN_PgDU fS4g&sparams=expire%2Cei%2Cip%2Cid%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=ABPmVW0wRQIhAL4XTegKBWTyhPvlGwVYx5b6wKFXGa JnWz5hPoyu2V1jAiBX3ZHpSl-MMXhVWpt3O5ds3INf0Wlr-pbzhcj9KywORA%3D%3D&pot=MnRLRTG8kBazMEt9RGwvFceBv40KENnpHtlDrguGDKni7A-azrTC0L_GYy7Pz-fH6mqHFsS7CmHJ3 c3g9Y6z-RqqRsbYhMeXWbiXmyTXLpKRXOkQFbgSjNeRohf9afkINW7suFEVcBe0OedclwPPNYTqkcXvKA %3D%3D&sig=AJfQdSswRAIgfjB7dIm2WxtJENp3UQMt-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/
描述:以指定分辨率下载 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/
描述:下载指定比特率的 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/
描述:检索 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": "en"}
200 OK
:字幕数据。
400 Bad Request
:无效的 URL 或语言代码。
500 Internal Server Error
:服务器端错误。
GET /temp_file/
描述:检索临时文件。
参数:
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
文件。