! nota el archivo Léame aún no se ha actualizado
Una API basada en Quart para descargar videos y audio de YouTube, recuperar metadatos de videos y manejar subtítulos. Esta API le permite interactuar con el contenido de YouTube mediante programación, aprovechando las tareas en segundo plano para administrar archivos temporales y proporcionar descargas eficientes.
Descargar videos y audio: recupere contenido con resoluciones y velocidades de bits específicas.
Recuperar metadatos de vídeo: obtenga detalles como título, vistas e información del canal.
Manejar subtítulos: busque y guarde subtítulos en formato SRT.
Verificar almacenamiento: asegúrese de tener suficiente espacio de almacenamiento antes de descargar.
Pitón 3.7+
FFmpeg
dependencias de requirements.txt
Clonar el repositorio
clon de git https://github.com/DannyAkintunde/YouTube-dl-apicd Youtube-dl-api
Ejecute el script de instalación
Ejecute el script install.sh
para instalar las dependencias de Python y los paquetes del sistema:
chmod +x instalar.sh ./instalar.sh
Este script:
Instale las dependencias de Python enumeradas en requirements.txt
Actualizar la lista de paquetes
Instalar FFmpeg
Verificar la instalación de FFmpeg
Ajuste los ajustes de configuración en el archivo settings.py
:
DEBUG
: habilita o deshabilita el modo de depuración (predeterminado: True
).
PROXY
: configura servidores proxy en el formato http_proxy, https_proxy.
AUTH
: configura la autenticación (predeterminado: False
).
ACCESS_TOKEN
: token para acceder a recursos protegidos (obligatorio si AUTH
es True
).
REFRESH_TOKEN
: Token para actualizar el acceso (obligatorio si AUTH
es True
).
EXPIRES
: tiempo de caducidad del token de acceso (obligatorio si AUTH
es True
).
VISITOR_DATA
: datos para el seguimiento de visitantes (obligatorio si AUTH
es True
).
PO_TOKEN
: Token para órdenes de compra (obligatorio si AUTH
es True
).
MAX_DOWNLOAD_SIZE
: Tamaño máximo de archivo para descargas (predeterminado: 2 GiB
).
MAX_SEARCH_AMOUNT
: Número máximo de resultados de búsqueda de videos (predeterminado: 25
).
MIN_SEARCH_AMOUNT
: Número mínimo de resultados de búsqueda de videos (predeterminado: 2
).
DEFAULT_SEARCH_AMOUNT
: número predeterminado de resultados de búsqueda de videos (predeterminado: 20
).
EXPIRATION_DELAY
: Retraso para la caducidad de archivos temporales (predeterminado: 1800 seconds
).
TEMP_DIR
: Directorio para almacenar archivos temporales (predeterminado: 'temp_files'
).
AUTH_DIR
: Ruta para guardar el archivo de autenticación (predeterminado: 'auth'
).
AUTH_FILE_NAME
: nombre del archivo de autenticación (predeterminado: 'temp.json'
).
CODECS
: Lista de códecs de vídeo y audio que se utilizarán (predeterminado: 'avc1,aac'
).
OBTENER /ping
Descripción: Comprueba el estado de la API.
Respuesta:
{ "mensaje": "pong"}
200 OK
: {"message": "pong"}
OBTENER /search
Descripción: Busca vídeos de YouTube basándose en una consulta.
Parámetros de consulta:
q
o query
: consulta de búsqueda.
Solicitud de ejemplo:
OBTENER /search?q=python+tutorial
Ejemplo de respuesta:
{ { "longitud": 20, "resultados": [ { "accessibility": {"duration": "6 horas, 14 minutos, 7 segundos","title": "Tutorial de Python: curso completo de Python para principiantes mediante programación con Mosh 41,059,791 visitas Hace 5 años 6 horas, 14 minutos" } , "channel": {"id": "UCWv7vMbMWH4-V0ZXdmDpPBA","link": "https://www.youtube.com/channel/UCWv7vMbMWH4-V0ZXdmDpPBA","name": "Programación con Mosh","miniaturas ": [ {"alto": 68,"url": "https://yt3.ggpht.com/lCeCb47hCbXWFa0I4gi8uWDHzWSs7sjK4FDmk7lFEUMRNp6QRzIQOkwaKhwv7eNKZacRI2uR=s68-ck-c0x00ffffff-no-rj","ancho": 68 } ] }, "descripciónSnippet": [ { "text": "Conviértete en "}, { "negrita": verdadero, "texto": "Python"}, { "text": " pro! Este completo "}, { "negrita": verdadero, "texto": "tutorial"}, { "text": " te lleva de principiante a héroe, cubriendo los conceptos básicos, el aprendizaje automático y ..."} ], "duración": "6:14:07", "id": "_uQrJ0TkZlc", "enlace": "https://www.youtube.com/watch?v=_uQrJ0TkZlc", "publishedTime": "5 hace años", "richThumbnail": {"height": 180,"url": "https://i.ytimg.com/an_webp/_uQrJ0TkZlc/mqdefault_6s.webp?du=3000&sqp=CLf547cG&rs=AOn4CLCAcnB5okiLttIEMkLM9bb-3w28AQ"," ancho": 320 }, "shelfTitle": nulo, "miniaturas": [ { "alto": 202, "url": "https://i.ytimg.com/vi/_uQrJ0TkZlc/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCQfkbApoaN-_QBOuiyHzWJOiziEA", "ancho": 36 0}, { "alto": 404, "url": "https://i.ytimg.com/vi/_uQrJ0TkZlc/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCpUFKfUMVNbg8mqTcZ8UdSUjpilw", "ancho": 720} ], "title": "Tutorial de Python - Curso completo de Python para principiantes", "type": "video", "viewCount": {"short": "41 millones de vistas","text": "41,059,791 vistas" } }//...más resultados aquí ], "search": "tutorial de Python", "search_id": "00b5a31c-30d7-4d96-92e5-42b871062bca", "search_suggestions": ["tutorial de Python","tutorial de Python para principiantes","tutorial de Python 2024" ] }
200 OK
: Resultados de búsqueda.
400 Bad Request
: parámetro de consulta faltante o no válido.
500 Internal Server Error
: error del lado del servidor.
OBTENER /info
Descripción: recupera metadatos de un vídeo de YouTube.
Parámetros de consulta:
url
: La URL del vídeo de YouTube.
Solicitud de ejemplo:
OBTENER /info?url=https://youtube.com/watch?v=dQw4w9WgXcQ
Ejemplo de respuesta:
{ "autor": "Rick Astley", "tasas de bits": ["160 kbps", "128 kbps", "70 kbps", "50 kbps" ], "channel_id": "UCuAXFkgsw1L7xaCfnd5JJOW", "channel_url": "https://www.youtube.com/channel/UCuAXFkgsw1L7xaCfnd5JJOW", "description": "El vídeo oficial de “Never Gonna Give You Up” de Rick Astley. nnEl nuevo álbum 'Are We There Yet?' ya está disponible: Descárguelo aquí: https://RickAstley.lnk.to/AreWeThereYetFA/itunesnn “Never Gonna Give You Up” fue un éxito mundial en su lanzamiento en julio de 1987, encabezando las listas en 25 países, incluido el Reino Unido natal de Rick y el Billboard Hot 100 de EE. UU. También ganó el premio Brit al mejor sencillo en 1988. Stock Aitken y Waterman escribieron y produjeron la canción que fue el primer sencillo y la canción principal del LP debut de Rick, "Whenever You Need Somebody". se convirtió en el número uno del Reino Unido y vendería más de 15 millones de copias en todo el mundo. El legendario vídeo fue dirigido por Simon West, quien más tarde realizó éxitos de taquilla de Hollywood como Con Air, Lara Croft, Tomb Raider y The Expendables 2. El vídeo superó el hito de mil millones de visualizaciones en YouTube el 28 de julio de 2021. Suscríbete al canal oficial de YouTube de Rick Astley: https://RickAstley.lnk.to/YTSubIDnnSigue a Rick Astley: nFacebook: https://RickAstley.lnk.to/FBFollowID nTwitter: https://RickAstley.lnk.to/TwitterID nInstagram: https://RickAstley.lnk.to/InstagramID nSitio web: https://RickAstley.lnk.to/storeID nTikTok: https://RickAstley.lnk.to/TikTokIDnnListen a 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 nnLetras:nNo somos ajenos al amornTú conoces las reglas y también InUn compromiso total es en lo que estoy pensandonNo obtendrías esto de ningún otro chiconnSolo quiero decirte cómo me sientonTengo que hacerte entender Nunca te rendiré Nunca te decepcionaré Nunca correré y te abandonaré Nunca te haré llorar Nunca diré adiós Nunca diré una mentira y te lastimaré Nos conocemos desde hace tanto tiempo Te duele el corazón pero eres demasiado tímido para decirlo Por dentro, ambos sabemos lo que ha estado pasando. Conocemos el juego y lo vamos a jugar. Y si me preguntas cómo me siento. No me digas que estás demasiado ciego para verlo. Nunca te rendiré. Nunca te decepcionaré. Nunca correré por ahí y Te abandonaré Nunca te haré llorar Nunca diré adiós Nunca diré una mentira y te lastimaré #RickAstley #NeverGonnaGiveYouUp #WheneverYouNeedSomebody #OfficialMusicVideo", "id": "dQw4w9WgXcQ", "keywords": ["rick astley","Never Gonna Give You Up ","nggyu","nunca voy a renunciar a ti letras","rick roll","Rick Roll","rick astley oficial","rickrolled","Canción de Fortnite","Evento de Fortnite","Baile de Fortnite", "fortnite nunca te rendirá","rick roll","rickrolling","rick Rolling","nunca te rendiré","música de los 80","rick astley nuevo","video animado","rickroll" ,"canciones meme","nunca te abandonaré letras","Rick Astley 2022","nunca te decepcionaré","animado","rick rolls 2022","nunca te abandonaré el karaoke" ], "longitud": 212, "fecha_de publicación": nula, "resoluciones": ["1080p","720p","480p","360p","240p","144p" ], "subtitles": ["es"], "thumbnail_url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg", "title": "Rick Astley - Nunca te rendiré ( Vídeo musical oficial)", "url": {"audio": { "128kbps": "https://rr2---sn-nx5s7n76.googlevideo.com/videoplayback?expire=1727620629&ei=tBH5ZuXtPK32sfIPmpfRaA&ip=34.213.214.55&id=o-AFciugVQSUntvlu-EtzrcBd4W06EaI8LnUezp Jahzv8S&itag=140&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-WkfbOrD6x11PgTTzzR3Xcc dPZFtz4stuPKtFQJJZUbJtbt6KJJdElaNlI6w&spc=54MbxZ-8cHiojJiaToWtUNunjsdmNSRVaZsp33b3yJk5hWz-XyvPBPMvqlmBFtXq-StOzuzECw&vprv=1&svpuc=1&mime=audio%2Fmp 4&ns= LcPciQPCIlyTAh4bUR1Ry3oQ&rqh=1&gir=yes&clen=3433605&dur=212.091&lmt=1717047821006373&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%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ABPmVW0wRQIhAL4XTegKBWTyh PvlGwVYx5b6wKFXGaJnWz5hPoyu2V1jAiBX3ZHpSl-MMXhVWpt3O5ds3INf0Wlr-pbzhcj9Kyw ORA%3D%3D&pot=MnRLRTG8kBazMEt9RGwvFceBv40KENnpHtlDrguGDKni7A-azrTC0L_GYy7P z -fH6mqHFsS7CmHJ3c3g9Y6z-RqqRsbYhMeXWbiXmyTXLpKRXOkQFbgSjNeRohf9afkINW7suFEVcBe0OedclwPPNYTqkcXvKA%3D%3D&sig=AJfQdSswRQIhALzVUs_1ZBhAU4vl4-_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-EtzrcBd4W06EaI8LnUezp Jahzv8S&itag=251&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-WkfbOrD6x11PgTTzzR3Xcc dPZFtz4stuPKtFQJJZUbJtbt6KJJdElaNlI6w&spc=54MbxZ-8cHiojJiaToWtUNunjsdmNSRVaZsp33b3yJk5hWz-XyvPBPMvqlmBFtXq-StOzuzECw&vprv=1&svpuc=1&mime=audio%2Fweb m&ns= LcPciQPCIlyTAh4bUR1Ry3oQ&rqh=1&gir=yes&clen=3437753&dur=212.061&lmt=1717047822556748&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%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ABPmVW0wRQIhAL4XTegKBWTyh PvlGwVYx5b6wKFXGaJnWz5hPoyu2V1jAiBX3ZHpSl-MMXhVWpt3O5ds3INf0Wlr-pbzhcj9Kyw ORA%3D%3D&pot=MnRLRTG8kBazMEt9RGwvFceBv40KENnpHtlDrguGDKni7A-azrTC0L_GYy7P z -fH6mqHFsS7CmHJ3c3g9Y6z-RqqRsbYhMeXWbiXmyTXLpKRXOkQFbgSjNeRohf9afkINW7suFEVcBe0OedclwPPNYTqkcXvKA%3D%3D&sig=AJfQdSswRAIgRgmVXNz6GXZTa8wFsnP1g7 VTKkAinxQ2MeL4L7_PpUUCIHgo1DpARUjGV3QpFS06_Q9xdzrUmYnQWyWm0VhX-HFS", "50kbps": "https://rr2---sn-nx5s7n76.googlevideo.com/videoplayback?expire=1727620629&ei=tBH5ZuXtPK32sfIPmpfRaA&ip=34.213.214.55&id=o-AFciugVQSUntvlu-EtzrcBd4W06EaI8LnUezpJ ahzv8S&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-WkfbOrD6x11PgTTzzR3Xcc dPZFtz4stuPKtFQJJZUbJtbt6KJJdElaNlI6w&spc=54MbxZ-8cHiojJiaToWtUNunjsdmNSRVaZsp33b3yJk5hWz-XyvPBPMvqlmBFtXq-StOzuzECw&vprv=1&svpuc=1&mime=audio%2Fweb m&ns= LcPciQPCIlyTAh4bUR1Ry3oQ&rqh=1&gir=yes&clen=1232413&dur=212.061&lmt=1717047819209140&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%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ABPmVW0wRQIhAL4XTegKBWTyh PvlGwVYx5b6wKFXGaJnWz5hPoyu2V1jAiBX3ZHpSl-MMXhVWpt3O5ds3INf0Wlr-pbzhcj9Kyw ORA%3D%3D&pot=MnRLRTG8kBazMEt9RGwvFceBv40KENnpHtlDrguGDKni7A-azrTC0L_GYy7P z -fH6mqHFsS7CmHJ3c3g9Y6z-RqqRsbYhMeXWbiXmyTXLpKRXOkQFbgSjNeRohf9afkINW7suFEVcBe0OedclwPPNYTqkcXvKA%3D%3D&sig=AJfQdSswRgIhANYw5Elp9cly-pk9fZtviQxozU wSbmeyiPSX7xxOHywGAiEAoHiFDUhUA-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%2C29&mn=sn-nx5s7n76%2Csn-nx57ynsk&ms=au%2Crdu&mv=m&mvi=2&pl=17&initcwndbps=906250&siu=1&bui=AXLXGFTLtpYeBi-WkfbOrD6x11PgTTzzR3Xcc dPZFtz4stuPKtFQJJZUbJtbt6KJJdElaNlI6w&spc=54MbxZ-8cHiojJiaToWtUNunjsdmNSRVaZsp33b3yJk5hWz-XyvPBPMvqlmBFtXq-StOzuzECw&vprv=1&svpuc=1&mime=audio%2Fweb m&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%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ABPmVW0wRQIhAL4XTegKBWTyh PvlGwVYx5b6wKFXGaJnWz5hPoyu2V1jAiBX3ZHpSl-MMXhVWpt3O5ds3INf0Wlr-pbzhcj9Kyw ORA%3D%3D&pot=MnRLRTG8kBazMEt9RGwvFceBv40KENnpHtlDrguGDKni7A-azrTC0L_GYy7P z -fH6mqHFsS7CmHJ3c3g9Y6z-RqqRsbYhMeXWbiXmyTXLpKRXOkQFbgSjNeRohf9afkINW7suFEVcBe0OedclwPPNYTqkcXvKA%3D%3D&sig=AJfQdSswRAIgcZBnQIuSU46Et4rVk1EP96LN12 X6zEturr49Dt3IdtgCICaL6e5X_7qoN782XgA94aCWl9APN7sqdpZDfnSQ3n4a" },"video": { "360p": "https://rr2---sn-nx5s7n76.googlevideo.com/videoplayback?expire=1727620629&ei=tBH5ZuXtPK32sfIPmpfRaA&ip=34.213.214.55&id=o-AFciugVQSUntvlu-EtzrcBd4W06EaI8LnUezpJah zv8S&itag=18&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=AXLXGFRb9LWg32JPSnGMKJTLm8K3ulHeoFqy 6jW98J3ow17XhWM6hHiFPFeuDi2q4X9h4FbCSw&spc=54MbxZ-_cHiojJiaToWtUNunjsdmNSRVaZsp33b3yJk5hWz-XyvPBPMvqlmBFtXq-StOzuz0DmJD&vprv=1&svpuc=1&mime=video%2 Fmp4&ns=8KIxDqAhSq857Jj0EsIv_rAQ&rqh= 1&cnr=14&ratebypass=yes&dur=212.091&lmt=1717051812678016&mt=1727598776&fvip=4&fexp=51299152%2C51300760&c=WEB&sefc=1&txp=4538434&n=5BzkN_Pg DUFS4g&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=ABPmVW0wRQIhAL4XTegKBWTyhPvlGwVYx5 b6wKFXGaJnWz5hPoyu2V1jAiBX3ZHpSl-MMXhVWpt3O5ds3INf0Wlr-pbzhcj9KywORA%3D%3D&pot=MnRLRTG8kBazMEt9RGwvFceBv40KENnpHtlDrguGDKni7A-azrTC0L_GYy7Pz-fH6mq HFsS7CmHJ3c3g9Y6z-RqqRsbYhMeXWbiXmyTXLpKRXOkQFbgSjNeRohf9afkINW7suFEVcBe0OedclwPPNYTqkcXvKA %3D%3D&sig=AJfQdSswRAIgfjB7dIm2WxtJENp3UQMt-R6AOxAG42tSR_R8AY1VOjQCIHZTT43adN0Wy7XAicHL3yPavg78sous0M4orEjRw98v" } }, "vistas": 1576357050, "watch_url": "https://youtube.com/watch?v=dQw4w9WgXcQ"}
200 OK
: Metadatos de vídeo.
400 Bad Request
: URL no válida o parámetro faltante.
500 Internal Server Error
: error del lado del servidor.
ENVIAR /download
Descripción: Descarga contenido de YouTube con la resolución más alta disponible.
Cuerpo de la solicitud:
{ "url": "https://youtube.com/watch?v=dQw4w9WgXcQ", "subtitle": {"burn": true,"lang": "es" }, "enlace": falso}
Ejemplo de respuesta (descarga de archivo):
Si link
es false
:
La respuesta será una descarga de archivo.
Si link
es true
:
{ "download_link": "http://example.com/temp_file/temp_Python_Tutorial_for_Beginners.mp4"}
200 OK
: Descargar enlace o archivo.
400 Bad Request
: URL o parámetros no válidos.
500 Internal Server Error
: error del lado del servidor.
POST /download/
Descripción: Descarga contenido de YouTube con una resolución específica.
Cuerpo de la solicitud:
{ "url": "https://youtube.com/watch?v=dQw4w9WgXcQ", "bitrate": "128kbps", "subtitle": {"burn": true,"lang": "en" }, "enlace": falso}
Ejemplo de respuesta (descarga de archivo):
Si link
es false
:
La respuesta será una descarga de archivo.
Si link
es true
:
{ "download_link": "http://example.com/temp_file/temp_Python_Tutorial_360p.mp4"}
200 OK
: Descargar enlace o archivo.
400 Bad Request
: resolución, tasa de bits o URL no válidas.
500 Internal Server Error
: error del lado del servidor.
ENVIAR /download_audio
Descripción: Descarga audio de YouTube con la más alta calidad.
Cuerpo de la solicitud:
{ "url": "https://youtube.com/watch?v=dQw4w9WgXcQ", "enlace": falso}
Ejemplo de respuesta (descarga de archivo):
Si link
es false
:
La respuesta será una descarga de archivo.
Si link
es true
:
{ "download_link": "http://example.com/temp_file/temp_Python_Tutorial.mp3"}
200 OK
: Descargar enlace o archivo.
400 Bad Request
: URL no válida.
500 Internal Server Error
: error del lado del servidor.
POST /download_audio/
Descripción: Descarga audio de YouTube con una tasa de bits específica.
Cuerpo de la solicitud:
{ "url": "https://youtube.com/watch?v=dQw4w9WgXcQ", "enlace": falso}
Ejemplo de respuesta (descarga de archivo):
Si link
es false
:
La respuesta será una descarga de archivo.
Si link
es true
:
{ "download_link": "http://example.com/temp_file/temp_Python_Tutorial_48kbps.mp3"}
200 OK
: Descargar enlace o archivo.
400 Bad Request
: tasa de bits o URL no válida.
500 Internal Server Error
: error del lado del servidor.
OBTENER /captions/
Descripción: recupera subtítulos de un vídeo de YouTube.
Parámetros de consulta:
url
: La URL del vídeo de YouTube.
Solicitud de ejemplo:
OBTENER /captions/en?url=https://youtube.com/watch?v=dQw4w9WgXcQ
Ejemplo de respuesta:
{ "caption": "normalmente son mis hijos quienes rompen las cosas y soy yo quien las arregla, pero cuando hay corrosión en el agua de mi piscina de bricolaje", "caption_json": [ { "duration": 5.679, "start": 0.12, "text": "normalmente son mis hijos los que rompen cosas y"}, { "duration": 5.919, "start": 2.72, "text": "Yo soy quien puede arreglarlo pero cuando"}, { "duration": 6.201, "start": 5.799, "text": "corrosión en la refrigeración por agua de mi piscina de bricolaje"} ], "archivo": "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": "Inglés (generado automáticamente)", "lang_code": "en"}
200 OK
: Datos de subtítulos.
400 Bad Request
: URL o código de idioma no válido.
500 Internal Server Error
: error del lado del servidor.
OBTENER /temp_file/
Descripción: Recupera un archivo temporal.
Parámetros:
filename
: El nombre del archivo.
Solicitud de ejemplo:
OBTENER /temp_file/temp_Python_Tutorial_for_Beginners.mp4
Ejemplo de respuesta:
Si el archivo existe, la respuesta será la descarga del archivo.
Si el archivo no existe:
{ "error": "Archivo no encontrado"}
200 OK
: Descarga de archivos.
404 Not Found
: Archivo no encontrado.
Para ejecutar la API, utilice:
Python principal.py
Borrar archivos temporales: la aplicación programa una tarea para borrar archivos temporales de más de 24 horas.
Consulte app.log
para ver mensajes de error detallados.
Asegúrese de que TEMP_DIR
tenga los permisos adecuados.
Valide las URL y los parámetros de YouTube en las solicitudes de API.
Este proyecto está bajo la Licencia AGPL-3. Consulte el archivo LICENSE
para obtener más detalles.