Accueil Technologies Télécharger les vidéos de formation Udemy avec Python
Télécharger les vidéos de formation Udemy - Avec Python

Télécharger les vidéos de formation Udemy avec Python

par Jérémy PASTOURET
Publié : Mis à jour le

Udemy est une grosse plateforme de cours en ligne basés principalement sur des vidéos. Les prix sont attractifs, et l’on y trouve régulièrement des supports en promo : cette page Dealabs peut en témoigner. Il arrive souvent que des cours soient proposés gratuitement. Et qui dit gros volume de vidéo à regarder, dit beaucoup de temps à y consacrer. Or quand on a un peu de temps dans les transports, en salle d’attente ou autre, la qualité du réseau n’est pas au rendez-vous. En plus, le service Udemy n’est pas très pratique sur le téléphone. Sans oublier que regarder des vidéos en 4G/5G n’est pas vraiment écolo. Pour résoudre ces problèmes, je vous propose d’installer et d’utiliser un outil très pratique. Celui-ci propose des options supplémentaires, contrairement à la version NodeJS. Ce projet Open source a été initié par r0oth3x49 que je remercie pour son travail.

Présentation

Il s’agit d’une solution qui fonctionne avec Python. Elle possède des options supplémentaires activables à la demande :

  • Ajouter les sous-titres s’ils existent.
  • Spécifier la langue des sous-titres souhaités.
  • Ne pas télécharger les sous-titres.
  • Télécharger uniquement un chapitre.
  • Télécharger uniquement un intervalle de chapitre.
  • Spécifier la résolution/qualité de la vidéo.

Téléchargement de Python 3

Si vous êtes sur Windows/Linux/Ubuntu et que Docker est installé, je vous invite à consulter ce projet GitHub. Cela vous permettra de sauter toute la partie installation. Je vous retrouve à la section Utilisation de Udemy-dl. Si vous rencontrez des problèmes, les commentaires sont là pour ça.

Il suffit de se rendre sur le site officiel de Python. Dirigez-vous tout en bas de la page, et faites attention à la version choisie – surtout si vous êtes sur Windows (64bits ou 32bits).

Ensuite, lancez le programme installé. Un assistant d’installation s’ouvre :

Installation de Python 3 - 64 bits - Customize
Personnalisation de l’installation

Cliquez sur l’option Customize installation. L’étape 2 apparaît :

Installation de Python 3 - Etape 2
Etape 2 – Rien à modifier

Cliquez sur le bouton Next, il n’y a rien à changer à cette étape.

Installation de Python 3 - Etape 3 - Path - Répertoire
Etape 3 – Paramétrages

C’est l’étape importante. Vous devez absolument cocher la case Add Python to environment variables. Et si vous souhaitez changer le répertoire d’installation, il faut modifier le deuxième encadré rouge. Il ne vous reste plus qu’à cliquer sur le bouton Install. L’installation se lance avec une belle barre de progression verte. Dès que c’est terminé, vous pouvez fermer l’assistant en cliquant sur le bouton Close.

Ouverture d’un terminal

Il vaut mieux créer un dossier spécifique sur votre ordinateur. Cet emplacement vous permettra par la suite de stocker les vidéos téléchargées. Dans mon exemple, je vais créer un répertoire nommé Udemy sur le bureau. A présent, rentrez dans le dossier créé.

Si vous êtes sous Linux/Ubuntu, effectuez un clic droit et cliquez sur l’option Ouvrir un terminal.

Si vous êtes sur Windows, restez appuyé sur la touche Shift ⬆ et faites un clic droit. Vous devriez obtenir les mêmes options que moi :

Ouvrir PowerShell sur Windows

A présent, cliquez sur Ouvrir Powershell. Une fenêtre bleue s’ouvre alors.

Vérification de l’installation de Python 3

Sur Windows, tapez la commande suivante pour vérifier que Python est bien installé :

py --version

Pour Ubuntu/Mac, tapez la commande suivante :

python3 --version

Vous devriez obtenir la réponse suivante :

Python 3.8.0

Il faut aussi contrôler que pip (outil d’installation de dépendance) a bien été installé.

Pour cela, tapez la commande suivante :

pip3 --version

La réponse est la suivante :

pip 19.2.3 from e:\users\jérémy pastouret\appdata\local\programs\python\python38\lib\site-packages\pip (python 3.8)

Mise à jour de pip

Il arrive que pip ne soit pas à jour, même si l’installation de Python est fraîche.

Sous Windows, lancez la commande suivante :

py -m pip install --upgrade pip

Sous Ubuntu/Linux, lancez la commande suivante :

python -m pip install --upgrade pip

Cela ne coûte pas grand-chose, mais permet d’éviter des allers-retour pour rien. De cette manière, je suis passé à la version suivante :

pip 19.3.1

Téléchargement de l’outil de récupération de cours d’Udemy

Rendez-vous à cette adresse : https://github.com/r0oth3x49/udemy-dl

Téléchargement du projet udemy-dl
Téléchargement du projet sous forme de ZIP

Pour éviter de vous faire télécharger/installer Git, je vous propose de cliquer sur le bouton Clone or download, puis sur Download ZIP. Récupérez l’archive et décompressez-la dans votre répertoire Udemy créé précédemment.

Zip d'Udemy-dl décompressé
ZIP décompressé

Installation des dépendances

Retournez sur le terminal ouvert précédemment, et lancez la commande suivante :

pip3 install -r requirements.txt 

Pip installe de manière automatique tous les composants permettant de faire fonctionner Udemy.

Using cached https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl

Collecting six

  Using cached https://files.pythonhosted.org/packages/65/26/32b8464df2a97e6dd1b656ed26b2c194606c16fe163c695a992b36c11cdf/six-1.13.0-py2.py3-none-any.whl

...

Successfully installed certifi-2019.9.11 cffi-1.13.2 chardet-3.0.4 colorama-0.4.1 cryptography-2.8 idna-2.8 pyOpenSSL-19.1.0 pycparser-2.19 requests-2.22.0 six-1.13.0 unidecode-1.1.1 urllib3-1.25.7

Utilisation de Udemy-dl

Sous Windows, tapez la commande suivante en veillant bien à remplacer URL par le cours que vous souhaitez télécharger :

py .\udemy-dl.py URL

Sous Ubuntu/MacOS :

python3 .\udemy-dl.py URL

Voici un exemple utilisable avec mon compte :

py .\udemy-dl.py https://www.udemy.com/course/how-to-turn-emails-into-passive-income

Un joli logo apparaît et la console vous demande votre Username. Saisissez l’adresse e-mail reliée à votre compte. Ensuite, la console vous demande votre mot de passe. Saisissez-le : le programme se met à télécharger automatiquement les cours, comme par magie. La capture d’écran suivante peut en témoigner :

Saisies des informations Udemy-dl et téléchargement des cours
Udemy-dl en train de télécharger mes cours

Si je retourne dans mon Udemy, je remarque que l’outil a bien organisé mes cours.

Organisation de Udemy-dl
Organisation d’Udemy-dl

Je dispose même des sous-titres dans le répertoire, ce que ne faisait pas le précédent outil.

Options avancées de Udemy-dl

Pour ajouter des options avancées supplémentaires, il suffit de piocher dans la liste ci-dessous et d’ajouter ces options en bout de ligne de commande.

  • Pour ne pas télécharger les sous-titres : –skip-sub
  • Spécifier un langage de sous-titres : –sub-lang french
  • Spécifier un chapitre : –chapter 3
  • Indiquer un intervalle de chapitre : –chapter-start 3 –chapter-end 5
  • Connaître les informations techniques du cours, comme la durée de la vidéo, les qualités disponibles… : –info
  • Spécifier une résolution d’image : –quality 360

Par exemple, pour télécharger le chapitre 3, il suffit de procéder comme ceci :

py .\udemy-dl.py https://www.udemy.com/course/how-to-turn-emails-into-passive-income  --chapter 3

Problème connu

Si le programme udemy-dl renvoie l’erreur suivante :

Udemy Says : 403 Forbidden You should use cookie base method to authenticate or try again in few minutes.

vous devez suivre cette procédure : https://github.com/r0oth3x49/udemy-dl/issues/389#issuecomment-491903900

Lockon (présent dans les commentaires) propose quelques ajustements de la méthode à partir de l’étape de récupération des données du cookie :

  • Appuyez sur F12 et sélectionnez la rubrique Stockage -> Cookie
  • Choisissez le cookie « www.udemy.com »
  • Filtrez le premier champ en tapant « access_token »
  • Sélectionnez la seule ligne qui apparaît
  • Dans la colonne « données » tout au bout à droite, faites un clic droit sur « access_token » en rose pour le copier
  • Dans le fichier cookie.txt, collez le résultat qui sera de cette forme : access_token : « EqsdfsqdfNx4mlkerhnmojehnztmohntrhpo »
  • Modifiez la forme du résultat de cette manière : access_token=EqsdfsqdfNx4mlkerhnmojehnztmohntrhpo
  • Pour terminer, tapez la ligne de commande : python udemy-dl.py courseUrl -k cookie.txt

Merci encore à Lockon d’avoir détaillé la procédure.

Conclusion

Vous êtes maintenant équipé pour récupérer du contenu sur votre compte Udemy. Si vous n’y parvenez pas, vous avez deux solutions :

  • en parler dans les commentaires.
  • aller lire mon premier article qui vous propose deux autres solutions, dont une avec NodeJs.

Vous pourriez aussi aimer

41 commentaires

Yacouba 10 décembre 2019 - 23 h 15 min

Merci pour votre article très pratique. Ça m’a vraiment aidé. Maintenant pas besoin de connexion, je peux suivre ma formation udemy en toute sérénité sur mon ordi. Merci, merci, merci !!!

Répondre
Jérémy PASTOURET 22 janvier 2020 - 18 h 26 min

Mille mercis pour ton commentaire ! Si tu veux nous donner encore un petit coup de pouce, partage l’article ou le site auprès de tes connaissances 🙂 Merci d’avance pour ton aide.

Répondre
Sv3n-Sk4 30 décembre 2019 - 12 h 37 min

Merci!

Tout simplement merci! Je viens d’apprendre et découvrir powershell puis télécharger les cours!

La simplicité et la pédagogie de vos explications sont excellentes.

Merci!

Répondre
Jérémy PASTOURET 22 janvier 2020 - 18 h 25 min

Merci pour ton avis positif, ça nous fait extrêmement plaisir. Si tu veux nous donner un petit coup de pouce, partage l’article ou le site à tes connaissances 🙂

Répondre
peter 12 janvier 2020 - 17 h 21 min

Merci !
clair – net – précis
le top !

Répondre
Jérémy PASTOURET 22 janvier 2020 - 18 h 24 min

Merci pour ton commentaire qui nous fait très plaisir. Si tu pouvais partager notre site à tes connaissances, ce serait top.

Répondre
Ach 29 janvier 2020 - 11 h 00 min

Clair, concis et de qualité, rien à dire.
Grâce à vous je pourrais étudier n »importe où sans connexion!
Merci mille fois!

Répondre
Jérémy PASTOURET 17 février 2020 - 13 h 25 min

Nous en sommes très heureux et nous te remercions pour ton commentaire.
Si tu veux nous aider davantage, partage le site auprès de tes amis/collègues, sur les réseaux sociaux ou d’autres supports 😉
Jérémy.

Répondre
Jérémy PASTOURET 8 avril 2020 - 19 h 26 min

bonjour
je vous remercie bcp! mais est-ce que je peux utliser cette methode pour telecharger les formation alphrom si j’ai un abonnememt svp??

Répondre
Simon 1 février 2020 - 19 h 49 min

Bonjour,
Je joins mes commentaires aux précédents : clair, précis et très pédagogique. J’ai juste un petit problème, à la place du joli logo en fin de parcours j’obtiens No module named ‘colorama’. Esr-ce que j’aurais fait une mauvaise manip quelque part ? Dans tous les cas merci de publier ce genre d’articles.

Répondre
Jérémy PASTOURET 17 février 2020 - 13 h 29 min

Merci pour ton commentaire. Cela nous fait plaisir !
As-tu bien lancé cette commande : pip3 install -r requirements.txt .
Cela permet d’installer les composants utiles à udemy-dl… notamment colorama.

Répondre
yesss 16 février 2020 - 18 h 49 min

Super! très clair et facile à réaliser

Répondre
Jérémy PASTOURET 17 février 2020 - 13 h 29 min

Merci pour ton commentaire. Cela nous fait plaisir !

Répondre
Karine 2 mars 2020 - 11 h 38 min

Bonjour,
Absolument génial !!! Merci de partager avec nous vos connaissances.
Auriez-vous aussi une solution pour les formations de tuto.com ?
Malgré mon abonnement annuel je suis obligée de regarder en ligne. Merci beaucoup.
Bonne journée

Répondre
lamiine 14 mars 2020 - 3 h 49 min

la derniere étape ne marche pas pour moi pour l’utilisation de udemy-dl pouvez ous m’aideer

Répondre
Alain N. 18 mars 2020 - 10 h 13 min

Bonjour Jeremy,
Merci infiniment pour ton doc et pour ton travail !
Fonctionne impeccablement bien.

Répondre
Jérémy PASTOURET 8 avril 2020 - 19 h 31 min

bonjour!
est-ce que si j’utilise cette methode pour les formations alphrom ca va marcher svp?

Répondre
sattare 29 avril 2020 - 21 h 55 min

Bonjour je pense sincèrement qu’il y a un soucis au niveau du telechargement en https.
je ne dispose pas pourtant de proxy mais a chaque fois que ce soit sous linux ou windows nous avons des messages du type :
Could not fetch URL https://XXXXX ne serais ce que lorsque l’on souhaite passer par le socket SSL .
Je ne vois pas dans vos explications la manière pour y remedier ..
Il ets preferable d’etre en mode verbeux car par défaut on voit rien obligé d’arreter par un controle X (l’option -v est a privilegier)
En http ca passe simple pas en https il doit manque des lib ssl quelque part …

Répondre
sattare 29 avril 2020 - 22 h 43 min

Could not fetch URL https://pypi.python.org/simple/requests/: There was a problem confirming the ssl certificate: Can’t connect to HTTPS URL because the SSL module is not available

Répondre
Jérémy PASTOURET 10 mai 2020 - 17 h 36 min

Bonjour SATTARE,
As-tu bien installé les requirements ?
pip3 install -r requirements.txt
C’est assez étrange, je n’ai pas trouvé ton problème dans les bugs référencés dans le projet.
Je peux te conseiller d’essayer de télécharger les vidéos avec NodeJS :
https://les-enovateurs.com/telecharger-videos-formation-udemy/

Répondre
fzo 8 mai 2020 - 17 h 42 min

Bonsoir Jérémy
Ton tuto est très bien fait malheureusement je n’arrive pas à me connecter. J’ai le message suivant : »Udemy Says : 403 Forbidden You should use cookie base method to authenticate or try again in few minutes … »

Répondre
Jérémy PASTOURET 10 mai 2020 - 17 h 29 min

Bonsoir FZO,
J’ai l’impression que tu as le même problème que Lockon.
Tu peux retrouver ma réponse sous sa question ci-dessous.
Merci de m’avoir remonté le problème.

Répondre
Lockon 10 mai 2020 - 9 h 54 min

Bonjour Jérémy,
Je vous remercie pour ce très bon tuto
j’ai le même message d’erreur que FZO :
Udemy Says : 403 Forbidden You should use cookie base method to authenticate or try again in few minutes …

Répondre
Jérémy PASTOURET 10 mai 2020 - 17 h 27 min

Bonjour Lockon,
J’ai fait quelques recherches sur le site du projet.
Pour débloquer la situation, l’équipe en charge du développement conseille d’appliquer la méthode suivante :
https://github.com/r0oth3x49/udemy-dl/issues/389#issuecomment-491903900
Je n’ai pas encore eu le temps de tester cette solution.
Si elle fonctionne, je mettrais à jour l’article. Merci de m’avoir remonté le problème.

Répondre
Lockon 10 mai 2020 - 20 h 02 min

Bonjour Jérémy,
Je vous remercie pour cette réponse rapide. La méthode a fonctionné mais il a tout de même fallu quelques ajustements dans le déroulé (en tout cas sur Firefox).
Le début du tuto est clair sauf l’étape de récupération des données du cookie :

Après avoir appuyé sur F12 et sélectionné la rubrique Stockage -> Cookie il faut :
-> choisir le cookie « www.udemy.com »
-> filtrer dans le premier champ en tapant « access_token »
-> sélectionner la seule ligne qui apparait
-> et dans la colonne « données » tout au bout à droite, faire un click droit sur « acces_token » en rose pour copier

Dans le Fichier cookie.txt il faut copier le résultat qui sera de cette forme :
access_token : »EqsdfsqdfNx4mlkerhnmojehnztmohntrhpo »
Il faut le modifier pour qu’il ait cette forme :
access_token=EqsdfsqdfNx4mlkerhnmojehnztmohntrhpo

Et ensuite taper al ligne de commande proposée.

Encore une foi merci.

Répondre
Jérémy PASTOURET 11 mai 2020 - 11 h 36 min

Merci à toi Lockon pour avoir détaillé la méthode.
Cela va permettre à d’autres de s’en sortir :-).

Répondre
FZO 3 août 2020 - 1 h 02 min

Bonsoir Jérôme et Lockon

Je vous remercie pour cette réponse. Toutefois en appliquant la méthode préconisée par Lockon, j’ai maintenant une autre erreur sous chrome et edge. Pour info, j’utilise la version v0.5 et j’ai lancé la commande suivante :
 » python udemy-dl.py https://www.udemy.com/course/mongodb-nodejs-mongoose-pour-debutants -k cookie.txt »
Je n’ai pas accès au login et obtiens le message d’erreur suivant
[*] : Trying to login using cookies …
Traceback (most recent call last):
File « udemy-dl.py », line 1442, in
main()
File « udemy-dl.py », line 1100, in main
udemy.course_download(path=options.output, quality=options.quality, unsafe=options.unsafe)
File « udemy-dl.py », line 436, in course_download
course = udemy.course(url=self.url, username=self.username, password=self.password, cookies=self.cookies)
File « xx\xx\UDEMY\udemy-dl-0.5\udemy\_udemy.py », line 38, in course
return Udemy(url, username, password, cookies, basic, callback)
File « xx\xx\UDEMY\udemy-dl-0.5\udemy\_internal.py », line 44, in __init__
super(InternUdemyCourse, self).__init__(*args, **kwargs)
File « xx\xx\UDEMY\udemy-dl-0.5\udemy\_shared.py », line 62, in __init__
self._fetch_course()
File « xx\xx\UDEMY\udemy-dl-0.5\udemy\_internal.py », line 52, in _fetch_course
auth = self._login(cookies=self._cookies)
File « xx\xx\UDEMY\udemy-dl-0.5\udemy\_extract.py », line 82, in _login
client_id = re.search(r'(?<=client_id=)([a-fA-F\d]{32})', str(cookies)).group()
AttributeError: 'NoneType' object has no attribute 'group'

J'ai testé la commande suivante :
"python udemy-dl.py https://www.udemy.com/course/mongodb-nodejs-mongoose-pour-debutants&quot;
J'obtiens la mire UDEMY-DL
Je peux renseigner mon login et mot de passe. Dans ce cas là, j'obtiens le message d'erreur suivant :
[-] Unable to extract login-form form

Je vous remercie pour votre aide.
FZO

Répondre
Jérémy PASTOURET 3 août 2020 - 10 h 08 min

Bonjour FZO,
Je te conseille de télécharger la dernière version au lieu d’utiliser la version 0.5.
En effet, la version 0.5 est sortie en 2018.
La dernier version présent sur le master a été modifiée, il y a 4 jours.
Il est fort à parier que certains correctifs pourront résoudre ton problème.
Jérémy

Répondre
FZO 5 août 2020 - 10 h 01 min

Bonjour Jérémy
Je te remercie pour l’info. Je reviens vers toi pour te dire si mon pb est réglé.
FZO

Philippe 2 juin 2020 - 18 h 20 min

Bonjour
et merci de tous ces renseignements précieux .. tout fonctionne parfaitement.
A ceux qui auraient besoin de traduction pour les sous-titres, je conseille le site de traduction DeepL.

Philippe

Répondre
grace 11 juin 2020 - 5 h 13 min

efficace, simple et meilleur! merci beaucoup !!

Répondre
kone adama 13 juillet 2020 - 2 h 35 min

Udemy Says : 403 Forbidden You should use cookie base method to authenticate or try again in few minutes …

Répondre
Jérémy PASTOURET 14 juillet 2020 - 9 h 38 min

Il suffit de suivre la réponse de Lockon dans les commentaires pour résoudre ton problème.

Répondre
Arthman 16 juillet 2020 - 13 h 23 min

veuillez m’aider, quand je lance la commande : pip3 install -r requirements.txt
voici la reponse que j’ai : ERROR : Could not open requirements file : [Errno 2] No such file or directory : ‘requirements.txt’

Répondre
Jérémy PASTOURET 16 juillet 2020 - 15 h 54 min

Bonjour,
Cela signifie que le fichier requirements.txt n’est pas présent dans le répertoire dans lequel vous lancez la commande.
Placez-vous dans le répertoire du projet, vérifiez la présence du fichier requirements.txt puis lancez la commande.

Répondre
Arthman 17 juillet 2020 - 17 h 33 min

Merci Jérémy

problème régler

Répondre
Guillaume 20 juillet 2020 - 18 h 45 min

Bonjour,

J’ai également l’erreur « 403 forbidden » mais en suivant la manipulation passant par l’access_token j’ai le message suivant:
Typeerror: cannot unpack non-iterable NoneType object.
Vous auriez une idée de ce qui bloque?
Merci ;).

Répondre
Jérémy PASTOURET 22 juillet 2020 - 18 h 25 min

Bonjour,
Pouvez-vous copier-coller la commande que vous avez lancé ?

Répondre
Romain 28 juillet 2020 - 9 h 38 min

Moi j’ai mis py .\udemy-dl.py https://www.udemy.com/course/react-le-guide-complet -k cookie.txt

Répondre
Jérémy PASTOURET 28 juillet 2020 - 12 h 05 min

Et vous obtenez la même erreur ?

Répondre
Oumar Djimé Ratou 14 octobre 2020 - 12 h 15 min

Bonjour, Je sais pas comment je vais te remercier mais sache que tu as fais un excellent boulot, So Merci !!!

Répondre

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.