! обратите внимание, что файл readme еще не обновлен
API на основе Quart для загрузки видео и аудио с YouTube, получения метаданных видео и обработки титров. Этот API позволяет вам программно взаимодействовать с контентом YouTube, используя фоновые задачи для управления временными файлами и обеспечения эффективной загрузки.
Загрузка видео и аудио: получение контента с указанным разрешением и битрейтом.
Получить метаданные видео: получите такие подробности, как заголовок, просмотры и информацию о канале.
Обработка подписей: получение и сохранение подписей в формате SRT.
Проверьте хранилище: перед загрузкой убедитесь, что достаточно места для хранения.
Питон 3.7+
FFmpeg
Зависимости файла requirements.txt
Клонировать репозиторий
git clone https://github.com/DannyAkintunde/YouTube-dl-apicd Youtube-dl-api
Запустите сценарий установки
Запустите сценарий install.sh
для установки зависимостей Python и системных пакетов:
chmod +x install.sh ./install.sh
Этот скрипт будет:
Установите зависимости Python, перечисленные в requirements.txt
Обновить список пакетов
Установить 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
: поисковый запрос.
Пример запроса:
ПОЛУЧИТЬ /search?q=python+учебник
Пример ответа:
{ { "длина": 20, "результаты": [ { "accessibility": {"duration": "6 часов, 14 минут, 7 секунд","title": "Урок по Python — полный курс Python для начинающих по программированию с помощью Mosh 41 059 791 просмотр 5 лет назад 6 часов 14 минут" } , "channel": {"id": "UCWv7vMbMWH4-V0ZXdmDpPBA","link": "https://www.youtube.com/channel/UCWv7vMbMWH4-V0ZXdmDpPBA","name": "Программирование с помощью Mosh","thumbnails": [ {"height": 68, "url": "https://yt3.ggpht.com/lCeCb47hCbXWFa0I4gi8uWDHzWSs7sjK4FDmk7lFEUMRNp6QRzIQOkwaKhwv7eNKZacRI2uR=s68-ck-c0x00ffffff-no-rj","width": 68 } ] }, "descriptionSnippet": [ { "text": "Стань "}, { "жирный": правда, "текст": "Python"}, { "text": "pro! Это комплексное решение"}, { "жирный": правда, "текст": "учебник"}, { "text": "проведет вас от новичка до героя, охватывая основы, машинное обучение и..."} ], "duration": "6:14:07", "id": "_uQrJ0TkZlc", "link": "https://www.youtube.com/watch?v=_uQrJ0TkZlc", "publishedTime": "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, "миниатюры": [ { "высота": 202, "url": "https://i.ytimg.com/vi/_uQrJ0TkZlc/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCQfkbApoaN-_QBOuiyHzWJOiziEA", "width": 360}, { "высота": 404, "url": "https://i.ytimg.com/vi/_uQrJ0TkZlc/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCpUFKfUMVNbg8mqTcZ8UdSUjpilw", "ширина": 720} ], "title": "Урок по Python — полный курс Python для начинающих", "type": "video", "viewCount": {"short": "41 млн просмотров","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
: URL-адрес видео YouTube.
Пример запроса:
ПОЛУЧИТЬ /info?url=https://youtube.com/watch?v=dQw4w9WgXcQ
Пример ответа:
{ "author": "Рик Эстли", "bitrates": ["160kbps","128kbps","70kbps","50kbps" ], "channel_id": "UCuAXFkgsw1L7xaCfnd5JJOw", "channel_url": "https://www.youtube.com/channel/UCuAXFkgsw1L7xaCfnd5JJOw", "description": "Официальное видео Рика Эстли «Never Gonna Give You Up». nnНовый альбом «Are We There Yet?» уже доступен: Загрузите здесь: https://RickAstley.lnk.to/AreWe ThereYetFA/itunesnn Песня «Never Gonna Give You Up» имела глобальный успех после своего выпуска в июле 1987 года, возглавив чарты в 25 странах, включая родную Великобританию Рика и Billboard Hot 100 в США. Он также получил премию Brit Award как лучший сингл в 1988 году. Сток Эйткен и Уотерман написали и спродюсировали трек, который стал первый сингл и заглавный трек с дебютного альбома Рика «Whenever You Need Somebody». Альбом сам по себе стал номером один в Великобритании и будет продан тиражом более 15 миллионов копий по всему миру. Режиссером легендарного видео стал Саймон Уэст, который позже стал. впоследствии снялись в таких голливудских блокбастерах, как «Воздушная тюрьма», «Лара Крофт – Расхитительница гробниц» и «Неудержимые 2». 28 июля 2021 года видео преодолело отметку в 1 миллиард просмотров на YouTube.nnПодпишитесь на рассылку официальный канал Рика Эстли на YouTube: https://RickAstley.lnk.to/YTSubIDnnFollow 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Слушайте Рика Эстли: nSpotify: https://RickAstley.lnk.to/SpotifyID nApple Music: https://RickAstley. lnk.to/AppleMusicID на Amazon Music: https://RickAstley.lnk.to/AmazonMusicID nDeezer: https://RickAstley.lnk.to/DeezerID nnLyrics:nМы не новички в любви. Вы знаете правила, и вы тоже. Я думаю о полной приверженности. Я не услышу этого ни от одного парня. Я просто хочу рассказать тебе, что я чувствую. Должен заставить тебя понять. Никогда не откажусь от тебя. Никогда не откажусь. Подведу тебяНикогда не буду бегать и бросать тебяНикогда не заставлю тебя плакатьНикогда не попрощаюсьНикогда не буду солгать и причинить тебе больМы знаем друг друга так долгоТвое сердце болит, но ты слишком стесняешься сказать этоВнутри мы оба знаем, что происходитМы знай игру, и мы сыграем в нее. И если ты спросишь меня, как я себя чувствую. Не говори мне, что ты слишком слеп, чтобы увидеть. Никогда не сдашься. тыnНикогда тебя не подведешьНикогда не будешь бегать и бросать тебяНикогда не заставишь тебя плакатьНикогда не попрощаешьсяНикогда не соврешь и не причинишь тебе вреда#RickAstley #NeverGonnaGiveYouUp #WheneverYouNeedSomebody #OfficialMusicVideo", "id": "dQw4w9WgXcQ", "keywords": [" Рик Эстли», «Никогда не дам тебе Вверх», «нгю», «никогда не откажусь от текста», «рик ролл», «Рик ролл», «чиновник Рика Эстли», «рикроллед», «песня Fortnite», «событие Fortnite», «танец Fortnite» ,"фортнайт никогда тебя не откажет","рик ролл","рикроллинг","рикроллинг","никогда не отдам тебя","музыка 80-х","рик Эстли Нью","анимационное видео","рикролл ","мем песни», «никогда не откажусь от текстов», «Рик Эстли 2022», «никогда не подведу тебя», «анимированные», «рик роллы 2022», «никогда не откажусь от караоке» ], "длина": 212, "publish_date": ноль, "разрешения": ["1080p","720p","480p","360p","240p","144p" ], "subtitles": ["en"], "thumbnail_url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg", "title": "Рик Эстли — Никогда не отдам тебя ( Официальное музыкальное видео)", "url": {"audio": { «128 кбит/с»: "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=audio%2Fmp4&ns=LcPciQPCIlyTAh4bUR1Ry3oQ&rqh=1&gir=yes&clen=3433 605&dur=212.091&lmt=1717047821006373&mt=1727598776&fvip=4&keepalive=yes&fexp=51299 152%2C51300760&c=WEB&sefc=1&txp=4532434&n=PBkHSDz29n0qdg&sparams=expire%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", «160 кбит/с»: "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=audio%2Fwebm&ns=LcPciQPCIlyTAh4bUR1Ry3oQ&rqh=1&gir=yes&clen=3 437753&dur=212.061&lmt=1717047822556748&mt=1727598776&fvip=4&keepalive=yes&fexp=5 1299152%2C51300760&c=WEB&sefc=1&txp=4532434&n=PBkHSDz29n0qdg&sparams=expire%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%2Cinicwndbps&lsig=ABPmVW0wRQIhAL4XTegKBWTyhPvlGwVYx5b6wKFXGaJnWz5hPoyu2V1jAiBX 3ZHpSl-MMXhVWpt3O5ds3INf0Wlr-pbzhcj9KywORA%3D%3D&pot=MnRLRTG8kBazMEt9RGwvFceBv40K ENnpHtlDrguGDKni7A-azrTC0L_GYy7Pz-fH6mqHFsS7CmHJ3c3g9Y6z-RqqRsbYhMeXWbiXmyTXLpKRX OkQFbgSjNeRohf9afkINW7suFEVcBe0OedclwPPNYTqkcXvKA%3D%3D&sig=AJfQdSswRAIgRgmVXNz6G XZTa8wFsnP1g7VTKkAinxQ2MeL4L7_PpUUCIHgo1DpARUjGV3QpFS06_Q9xdzrUmYnQWyWm0VhX-HFS", «50 кбит/с»: "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=audio%2Fwebm&ns=LcPciQPCIlyTAh4bUR1Ry3oQ&rqh=1&gir=yes&clen=123 2413&dur=212.061&lmt=1717047819209140&mt=1727598776&fvip=4&keepalive=yes&fexp=5129 9152%2C51300760&c=WEB&sefc=1&txp=4532434&n=PBkHSDz29n0qdg&sparams=expire%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", «70кбит/с»: "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-WkfbOrD6x11PgTTzzR3XccdPZFtz4stuPKtFQJJZUbJtbt6KJJdElaNlI 6w&spc=54MbxZ-8cHiojJiaToWtUNunjsdmNSRVaZsp33b3yJk5hWz-XyvPBPMvqlmBFtXq-StOzuzECw &vprv=1&svpuc=1&mime=audio%2Fwebm&ns=LcPciQPCIlyTAh4bUR1Ry3oQ&rqh=1&gir=yes&clen= 1630086&dur=212.061&lmt=1717047822840442&mt=1727598776&fvip=4&keepalive=yes&fexp= 51299152%2C51300760&c=WEB&sefc=1&txp=4532434&n=PBkHSDz29n0qdg&sparams=expire%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%2Cinicwndbps&lsig=ABPmVW0wRQIhAL4XTegKBWTyhPvlGwVYx5b6wKFXGaJnWz5hPoyu2V1jAiB X3ZHpSl-MMXhVWpt3O5ds3INf0Wlr-pbzhcj9KywORA%3D%3D&pot=MnRLRTG8kBazMEt9RGwvFceBv40 KENnpHtlDrguGDKni7A-azrTC0L_GYy7Pz-fH6mqHFsS7CmHJ3c3g9Y6z-RqqRsbYhMeXWbiXmyTXLpKR XOkQFbgSjNeRohf9afkINW7suFEVcBe0OedclwPPNYTqkcXvKA%3D%3D&sig=AJfQdSswRAIgcZBnQIuS U46Et4rVk1EP96LN12X6zEturr49Dt3IdtgCICaL6e5X_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=yes&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 %2Cinicwndbps&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", "subtitle": {"burn": true, "lang": "en" }, «ссылка»: ложь}
Пример ответа (загрузка файла):
Если 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", "битрейт": "128 кбит/с", "subtitle": {"burn": true, "lang": "en" }, «ссылка»: ложь}
Пример ответа (загрузка файла):
Если 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
: ошибка на стороне сервера.
POST /download_audio
Описание: Скачивает аудио с YouTube в самом высоком качестве.
Тело запроса:
{ "url": "https://youtube.com/watch?v=dQw4w9WgXcQ", "link": 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", "link": 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
: URL-адрес видео YouTube.
Пример запроса:
GET /captions/en?url=https://youtube.com/watch?v=dQw4w9WgXcQ
Пример ответа:
{ "caption": "обычно это мои дети ломают вещи, и мне приходится это чинить, но когда нет коррозии в системе охлаждения воды в моем самодельном бассейне", "caption_json": [ { "duration": 5.679, "start": 0.12, "text": "обычно мои дети ломают вещи и"}, { "duration": 5.919, "start": 2.72, "text": "Я тот, кто сможет это исправить, но когда"}, { "duration": 6.201, "start": 5.799, "text": "коррозия в системе охлаждения воды в моем самодельном бассейне"} ], "file": "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 используйте:
основной файл Python
Очистка временных файлов: приложение планирует задачу по удалению временных файлов старше 24 часов.
Проверьте app.log
на наличие подробных сообщений об ошибках.
Убедитесь, что у TEMP_DIR
есть соответствующие разрешения.
Проверка URL-адресов и параметров YouTube в запросах API.
Этот проект лицензируется по лицензии AGPL-3. Подробности смотрите в файле LICENSE
.