! 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
: Configurar 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" } , "canal": {"id": "UCWv7vMbMWH4-V0ZXdmDpPBA","enlace": "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": {"altura": 180,"url": "https://i.ytimg.com/an_webp/_uQrJ0TkZlc/mqdefault_6s.webp?du=3000&sqp=CLf547cG&rs=AOn4CLCAcnB5okiLttIEMkLM9bb-3w28AQ","width": 320 }, "shelfTitle": null, "thumbnails": [ { "altura": 202, "url": "https://i.ytimg.com/vi/_uQrJ0TkZlc/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCQfkbApoaN-_QBOuiyHzWJOiziEA", "ancho": 360}, { "altura": 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 la 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 tema principal del LP debut de Rick, "Whenever You Need Somebody". El álbum fue en sí mismo un número uno en el Reino Unido y vendería más de 15 millones de copias en todo el mundo. El legendario video fue dirigido por Simon West, quien luego pasó a hacer Hollywood. éxitos de taquilla como Con Air, Lara Croft – Tomb Raider y The Expendables 2. El vídeo superó el hito de los mil millones de visitas 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. a/InstagramID nSitio web: https://RickAstley.lnk.to/storeID nTikTok: https://RickAstley.lnk.to/TikTokIDnnEscuche 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 yo Estoy sintiendo Tengo que hacerte entender Nunca te rendiré Nunca te decepcionaré Nunca correré y te abandonaré Nunca te haré llorar Nunca lo haré Di adiós Nunca diré una mentira ni 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 está 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 ver 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é #RickAstley #NeverGonnaGiveYouUp #WheneverYouNeedSomebody #OfficialMusicVideo", "id": "dQw4w9WgXcQ", "keywords": ["rick astley","Never Gonna Give You Up", "nggyu","nunca voy a renunciar a ti letras","rick rodado","Rick Roll","rick astley oficial","rickrolled","canción fortnite","evento fortnite","baile fortnite","fortnite nunca te rendirá","rick roll","rickrolling","rick rodante","nunca te daré up","música de los 80","rick astley nuevo","vídeo animado","rickroll","canciones meme","nunca te rendiré letras","Rick Astley 2022","nunca te decepcionaré" ,"animado","rick rolls 2022","nunca te rendiré 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": { "128 kbps": "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 kbps": "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%2Cinitcwndbps&lsig=ABPmVW0wRQIhAL4XTegKBWTyhPvlGwVYx5b6wKFXGaJnWz5hPoyu2V1jAiBX 3ZHpSl-MMXhVWpt3O5ds3INf0Wlr-pbzhcj9KywORA%3D%3D&pot=MnRLRTG8kBazMEt9RGwvFceBv40K ENnpHtlDrguGDKni7A-azrTC0L_GYy7Pz-fH6mqHFsS7CmHJ3c3g9Y6z-RqqRsbYhMeXWbiXmyTXLpKRX OkQFbgSjNeRohf9afkINW7suFEVcBe0OedclwPPNYTqkcXvKA%3D%3D&sig=AJfQdSswRAIgRgmVXNz6G XZTa8wFsnP1g7VTKkAinxQ2MeL4L7_PpUUCIHgo1DpARUjGV3QpFS06_Q9xdzrUmYnQWyWm0VhX-HFS", "50 kbps": "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 kbps": "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%2Cinitcwndbps&lsig=ABPmVW0wRQIhAL4XTegKBWTyhPvlGwVYx5b6wKFXGaJnWz5hPoyu2V1jAiB X3ZHpSl-MMXhVWpt3O5ds3INf0Wlr-pbzhcj9KywORA%3D%3D&pot=MnRLRTG8kBazMEt9RGwvFceBv40 KENnpHtlDrguGDKni7A-azrTC0L_GYy7Pz-fH6mqHFsS7CmHJ3c3g9Y6z-RqqRsbYhMeXWbiXmyTXLpKR XOkQFbgSjNeRohf9afkINW7suFEVcBe0OedclwPPNYTqkcXvKA%3D%3D&sig=AJfQdSswRAIgcZBnQIuS U46Et4rVk1EP96LN12X6zEturr49Dt3IdtgCICaL6e5X_7qoN782XgA94aCWl9APN7sqdpZDfnSQ3n4a" },"video": { "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 %2Cinitcwndbps&lsig=ABPmVW0wRQIhAL4XTegKBWTyhPvlGwVYx5b6wKFXGaJnWz5hPoyu2V1jAiBX3 ZHpSl-MMXhVWpt3O5ds3INf0Wlr-pbzhcj9KywORA%3D%3D&pot=MnRLRTG8kBazMEt9RGwvFceBv40K ENnpHtlDrguGDKni7A-azrTC0L_GYy7Pz-fH6mqHFsS7CmHJ3c3g9Y6z-RqqRsbYhMeXWbiXmyTXLpKRX OkQFbgSjNeRohf9afkINW7suFEVcBe0OedclwPPNYTqkcXvKA%3D%3D&sig=AJfQdSswRAIgfjB7dIm2 WxtJENp3UQMt-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/<resolution>
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/<bitrate>
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/<lang>
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/<filename>
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.