! remarque, le fichier Lisez-moi n'a pas encore été mis à jour
Une API basée sur Quart pour télécharger des vidéos et des fichiers audio YouTube, récupérer des métadonnées vidéo et gérer les sous-titres. Cette API vous permet d'interagir avec le contenu YouTube par programmation, en tirant parti des tâches en arrière-plan pour gérer les fichiers temporaires et fournir des téléchargements efficaces.
Télécharger des vidéos et de l'audio : récupérez du contenu avec des résolutions et des débits binaires spécifiés.
Récupérer les métadonnées vidéo : obtenez des détails tels que le titre, les vues et les informations sur la chaîne.
Gérer les légendes : récupérez et enregistrez les légendes au format SRT.
Vérifiez le stockage : assurez-vous d'avoir suffisamment d'espace de stockage avant de télécharger.
Python3.7+
FFmpeg
Dépendances requirements.txt
Cloner le référentiel
git clone https://github.com/DannyAkintunde/YouTube-dl-apicd Youtube-dl-api
Exécutez le script d'installation
Exécutez le script install.sh
pour installer les dépendances Python et les packages système :
chmod +x install.sh ./install.sh
Ce script :
Installez les dépendances Python répertoriées dans requirements.txt
Mettre à jour la liste des packages
Installer FFmpeg
Vérifiez l'installation de FFmpeg
Ajustez les paramètres de configuration dans le fichier settings.py
:
DEBUG
: Activer ou désactiver le mode débogage (par défaut : True
).
PROXY
: Configurez les proxys au format http_proxy,https_proxy.
AUTH
: Configurer l'authentification (par défaut : False
).
ACCESS_TOKEN
: Jeton d'accès aux ressources protégées (obligatoire si AUTH
est True
).
REFRESH_TOKEN
: Jeton d'accès rafraîchissant (obligatoire si AUTH
est True
).
EXPIRES
: Délai d'expiration du jeton d'accès (obligatoire si AUTH
est True
).
VISITOR_DATA
: Données pour le suivi des visiteurs (obligatoire si AUTH
est True
).
PO_TOKEN
: Token pour les bons de commande (obligatoire si AUTH
est True
).
MAX_DOWNLOAD_SIZE
: taille maximale du fichier pour les téléchargements (par défaut : 2 GiB
).
MAX_SEARCH_AMOUNT
: nombre maximum de résultats de recherche vidéo (par défaut : 25
).
MIN_SEARCH_AMOUNT
: nombre minimum de résultats de recherche vidéo (par défaut : 2
).
DEFAULT_SEARCH_AMOUNT
: nombre par défaut de résultats de recherche vidéo (par défaut : 20
).
EXPIRATION_DELAY
: Délai d'expiration des fichiers temporaires (par défaut : 1800 seconds
).
TEMP_DIR
: Répertoire de stockage des fichiers temporaires (par défaut : 'temp_files'
).
AUTH_DIR
: Chemin pour enregistrer le fichier d'authentification (par défaut : 'auth'
).
AUTH_FILE_NAME
: Nom du fichier d'authentification (par défaut : 'temp.json'
).
CODECS
: Liste des codecs vidéo et audio à utiliser (par défaut : 'avc1,aac'
).
OBTENIR /ping
Description : Vérifie l'état de l'API.
Réponse:
{ "message": "pong"}
200 OK
: {"message": "pong"}
OBTENIR /search
Description : recherche des vidéos YouTube en fonction d'une requête.
Paramètres de requête :
q
ou query
: Requête de recherche.
Exemple de demande :
GET /search?q=python+tutoriel
Exemple de réponse :
{ { "longueur": 20, "résultats": [ { "accessibility": {"duration": "6 heures, 14 minutes, 7 secondes","title": "Tutoriel Python - Cours complet Python pour débutants en programmant avec Mosh 41 059 791 vues il y a 5 ans 6 heures et 14 minutes" } , "channel": {"id": "UCWv7vMbMWH4-V0ZXdmDpPBA","link": "https://www.youtube.com/channel/UCWv7vMbMWH4-V0ZXdmDpPBA","name": "Programmation avec Mosh","vignettes": [ {"hauteur": 68,"url": "https://yt3.ggpht.com/lCeCb47hCbXWFa0I4gi8uWDHzWSs7sjK4FDmk7lFEUMRNp6QRzIQOkwaKhwv7eNKZacRI2uR=s68-ck-c0x00ffffff-no-rj","largeur": 68 } ] }, "descriptionSnippet": [ { "text": "Devenez un "}, { "gras" : vrai, "texte" : "Python"}, { "text": " pro ! Ce complet "}, { "gras": vrai, "text": "tutoriel"}, { "text": " vous fait passer du débutant au héros, couvrant les bases, l'apprentissage automatique et..."} ], "duration": "6:14:07", "id": "_uQrJ0TkZlc", "link": "https://www.youtube.com/watch?v=_uQrJ0TkZlc", "publishedTime": "5 il y a quelques années", "richThumbnail": {"hauteur": 180,"url": "https://i.ytimg.com/an_webp/_uQrJ0TkZlc/mqdefault_6s.webp?du=3000&sqp=CLf547cG&rs=AOn4CLCAcnB5okiLttIEMkLM9bb-3w28AQ","width": 320 }, "shelfTitle": null, "vignettes": [ { "hauteur": 202, "url": "https://i.ytimg.com/vi/_uQrJ0TkZlc/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCQfkbApoaN-_QBOuiyHzWJOiziEA", "largeur": 360}, { "hauteur": 404, "url": "https://i.ytimg.com/vi/_uQrJ0TkZlc/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCpUFKfUMVNbg8mqTcZ8UdSUjpilw", "largeur": 720} ], "title": "Tutoriel Python - Cours complet Python pour débutants", "type": "video", "viewCount": {"short": "41 millions de vues","text": "41 059 791 vues" } }//...plus de résultats ici ], "search": "tutoriel python", "search_id": "00b5a31c-30d7-4d96-92e5-42b871062bca", "search_suggestions": ["tutoriel python","tutoriel python pour débutants","tutoriel python 2024" ] }
200 OK
: Résultats de la recherche.
400 Bad Request
: paramètre de requête manquant ou invalide.
500 Internal Server Error
: erreur côté serveur.
OBTENIR /info
Description : Récupère les métadonnées d'une vidéo YouTube.
Paramètres de requête :
url
: L'URL de la vidéo YouTube.
Exemple de demande :
OBTENIR /info?url=https://youtube.com/watch?v=dQw4w9WgXcQ
Exemple de réponse :
{ "auteur": "Rick Astley", "bitrates": ["160kbps","128kbps","70kbps","50kbps" ], "channel_id": "UCuAXFkgsw1L7xaCfnd5JJOw", "channel_url": "https://www.youtube.com/channel/UCuAXFkgsw1L7xaCfnd5JJOw", "description": "Le clip officiel de « Never Gonna Give You Up » de Rick Astley. nnLe nouvel album « Are We There Yet ? » est disponible maintenant : Téléchargez ici : https://RickAstley.lnk.to/AreWeThereYetFA/itunesnn « Never Gonna Give You Up » a été un succès mondial lors de sa sortie en juillet 1987, en tête des charts dans 25 pays, dont le Royaume-Uni natal de Rick et le US Billboard Hot 100. Il a également remporté le Brit Award du meilleur single en 1988. Stock Aitken et Waterman ont écrit et produit le morceau qui était le premier single. et le titre principal du premier album de Rick, « Whenever You Need Somebody ». L'album était lui-même numéro un au Royaume-Uni et se vendrait à plus de 15 millions d'exemplaires dans le monde.nnLa vidéo légendaire a été réalisée par Simon West – qui a ensuite tourné à Hollywood. des blockbusters tels que Con Air, Lara Croft – Tomb Raider et The Expendables 2. La vidéo a dépassé le cap du milliard de vues sur YouTube le 28 juillet 2021.nnAbonnez-vous à la chaîne YouTube officielle de Rick Astley : https://RickAstley.lnk.to/YTSubIDnnSuivez Rick Astley :nFacebook : https://RickAstley.lnk.to/FBFollowID nTwitter : https://RickAstley.lnk.to/TwitterID nInstagram : https://RickAstley.lnk. to/InstagramID nSite Web : https://RickAstley.lnk.to/storeID nTikTok : https://RickAstley.lnk.to/TikTokIDnnÉcoutez 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 nnParoles :nNous ne sommes pas étrangers à l'amournTu connais les règles, tout comme InUn engagement total, c'est ce à quoi je pensenTu n'obtiendrais pas ça d'un autre garsnnJe veux juste te dire ce que je ressensnJe dois te faire comprendrennJe ne t'abandonnerai jamaisnJe ne le ferai jamais je ne te laisserai jamais tomber, je ne vais jamais courir partout et t'abandonner, je ne te ferai jamais pleurer, je ne te dirai jamais au revoir, je ne vais jamais te mentir et te faire du mal, nous nous connaissons tous. l'autre depuis si longtemps. Ton cœur te fait mal mais tu es trop timide pour le dire. À l'intérieur, nous savons tous les deux ce qui se passe. Nous connaissons le jeu et nous allons y jouer. Et si vous me demandez comment je me sens, ne me dites pas que vous l'êtes aussi. aveugle pour être vunJe ne t'abandonnerai jamaisnJe ne te laisserai jamais tombernJe ne vais jamais courir partout et t'abandonneraiNe jamais te faire pleurerNe jamais te dire au revoirNe jamais te mentir et te blesser younn#RickAstley #NeverGonnaGiveYouUp #WheneverYouNeedSomebody #OfficialMusicVideo", "id": "dQw4w9WgXcQ", "keywords": ["rick astley","Je ne t'abandonnerai jamais","nggyu","Je ne t'abandonnerai jamais paroles", "rick roulé", "Rick Roll", "rick astley officiel", "rickrolled", "Chanson Fortnite", "Fortnite événement", "Fortnite dance", "fortnite ne t'abandonnera jamais", "rick roll", "rickrolling", "rick Rolling", "je ne t'abandonnerai jamais", "musique des années 80", "rick astley nouveau", "Vidéo animée", "rickroll", "chansons meme", "paroles de ne jamais t'abandonner", "Rick Astley 2022", "je ne te laisserai jamais tomber", "animé", "rick rolls 2022", "je ne vais jamais te laisser tomber" abandonne le karaoké" ], "longueur": 212, "publish_date": null, "résolutions": ["1080p", "720p", "480p", "360p", "240p", "144p" ], "subtitles": ["fr"], "thumbnail_url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg", "title": "Rick Astley - Never Gonna Give You Up ( Clip vidéo officiel)", "url": {"audio": { "128 kbit/s" : "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 kbit/s" : "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", "50kbit/s" : "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 kbit/s" : "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=oui&clen= 1630086&dur=212.061&lmt=1717047822840442&mt=1727598776&fvip=4&keepalive=oui&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 " },"vidéo": { "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=oui&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" } }, "vues": 1576357050, "watch_url": "https://youtube.com/watch?v=dQw4w9WgXcQ"}
200 OK
: Métadonnées vidéo.
400 Bad Request
: URL invalide ou paramètre manquant.
500 Internal Server Error
: erreur côté serveur.
POST /download
Description : Télécharge le contenu YouTube avec la résolution disponible la plus élevée.
Corps de la demande :
{ "url": "https://youtube.com/watch?v=dQw4w9WgXcQ", "subtitle": {"burn": true,"lang": "fr" }, "lien": faux}
Exemple de réponse (téléchargement de fichier) :
Si link
est false
:
La réponse sera un téléchargement de fichier.
Si link
est true
:
{ "download_link": "http://example.com/temp_file/temp_Python_Tutorial_for_Beginners.mp4"}
200 OK
: Télécharger le lien ou le fichier.
400 Bad Request
: URL ou paramètres invalides.
500 Internal Server Error
: erreur côté serveur.
POST /download/<resolution>
Description : Télécharge du contenu YouTube avec une résolution spécifiée.
Corps de la demande :
{ "url": "https://youtube.com/watch?v=dQw4w9WgXcQ", "bitrate": "128kbps", "subtitle": {"burn": true,"lang": "en" }, "lien": faux}
Exemple de réponse (téléchargement de fichier) :
Si link
est false
:
La réponse sera un téléchargement de fichier.
Si link
est true
:
{ "download_link": "http://example.com/temp_file/temp_Python_Tutorial_360p.mp4"}
200 OK
: Télécharger le lien ou le fichier.
400 Bad Request
: résolution, débit binaire ou URL non valide.
500 Internal Server Error
: erreur côté serveur.
POST /download_audio
Description : Télécharge l'audio YouTube avec la plus haute qualité.
Corps de la demande :
{ "url": "https://youtube.com/watch?v=dQw4w9WgXcQ", "link": false}
Exemple de réponse (téléchargement de fichier) :
Si link
est false
:
La réponse sera un téléchargement de fichier.
Si link
est true
:
{ "download_link": "http://example.com/temp_file/temp_Python_Tutorial.mp3"}
200 OK
: Télécharger le lien ou le fichier.
400 Bad Request
: URL invalide.
500 Internal Server Error
: erreur côté serveur.
POST /download_audio/<bitrate>
Description : Télécharge l'audio YouTube avec un débit binaire spécifié.
Corps de la demande :
{ "url": "https://youtube.com/watch?v=dQw4w9WgXcQ", "link": false}
Exemple de réponse (téléchargement de fichier) :
Si link
est false
:
La réponse sera un téléchargement de fichier.
Si link
est true
:
{ "download_link": "http://example.com/temp_file/temp_Python_Tutorial_48kbps.mp3"}
200 OK
: Télécharger le lien ou le fichier.
400 Bad Request
: débit binaire ou URL invalide.
500 Internal Server Error
: erreur côté serveur.
OBTENIR /captions/<lang>
Description : Récupère les sous-titres d'une vidéo YouTube.
Paramètres de requête :
url
: L'URL de la vidéo YouTube.
Exemple de demande :
OBTENIR /captions/en?url=https://youtube.com/watch?v=dQw4w9WgXcQ
Exemple de réponse :
{ "caption": "généralement, ce sont mes enfants qui cassent des trucs et c'est moi qui dois les réparer, mais quand il y a de la corrosion dans le refroidissement de l'eau de ma piscine DIY", "caption_json": [ { "duration": 5,679, "start": 0,12, "text": "généralement, ce sont mes enfants qui cassent des trucs et"}, { "duration": 5.919, "start": 2.72, "text": "C'est moi qui dois le réparer mais quand"}, { "duration": 6.201, "start": 5.799, "text": "corrosion dans le refroidissement de l'eau de ma piscine DIY"} ], "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": "Anglais (généré automatiquement)", "lang_code": "en"}
200 OK
: Données de sous-titres.
400 Bad Request
: URL ou code de langue invalide.
500 Internal Server Error
: erreur côté serveur.
GET /temp_file/<filename>
Description : Récupère un fichier temporaire.
Paramètres :
filename
: Le nom du fichier.
Exemple de demande :
OBTENIR /temp_file/temp_Python_Tutorial_for_Beginners.mp4
Exemple de réponse :
Si le fichier existe, la réponse sera le téléchargement du fichier.
Si le fichier n'existe pas :
{ "erreur": "Fichier introuvable"}
200 OK
: Téléchargement du fichier.
404 Not Found
: Fichier introuvable.
Pour exécuter l'API, utilisez :
python main.py
Effacement des fichiers temporaires : l'application planifie une tâche pour effacer les fichiers temporaires datant de plus de 24 heures.
Consultez app.log
pour les messages d’erreur détaillés.
Assurez-vous que TEMP_DIR
dispose des autorisations appropriées.
Validez les URL et les paramètres YouTube dans les requêtes API.
Ce projet est sous licence AGPL-3. Voir le fichier LICENSE
pour plus de détails.