erfansahaf / kodekloud-downloader

A Chrome extension that lets you download KodeKloud courses
24 stars 26 forks source link

Not working. #3

Open anushri-017 opened 3 years ago

anushri-017 commented 3 years ago

Hii, The extension or downloader is not working, no information. unable to download any of the videos.

Thanks, Anushri.

erfansahaf commented 3 years ago

Hey Anushri,

It seems that KodeKloud has changed its UI a little bit and that may be caused this issue. I don't have enough time to debug and fix it right now, so feel free to send a PR.

vilaspatel commented 3 years ago

Hi Guys . I found another extension which works . Video downloader - CoCoCut Copy past the below link https://chrome.google.com/webstore/detail/video-downloader-cococut/gddbgllpilhpnjpkdbopahnpealaklle/related?hl=en

Detailed tutorial

https://cococut.net/tutorial.html

plistiak commented 3 years ago

Hi. I've created pull request with fix.

bahmanjafari commented 2 years ago

Hi still not work :(

erfansahaf commented 2 years ago

@bahmanjafari Try to use this extension on the old website: https://legacy.kodekloud.com/

bahmanjafari commented 2 years ago

@bahmanjafari Try to use this extension on the old website: https://legacy.kodekloud.com/

unfortunately not work even legacy.kodekloud.com :(

debakarr commented 2 years ago

I wrote a quick python hack: https://gist.github.com/debakarr/0104c0a91913f9261f604c1a4061a14f

Merevoli-DatLuu commented 2 years ago

I wrote a quick python hack: https://gist.github.com/Dibakarroy1997/0104c0a91913f9261f604c1a4061a14f

For some courses it only downloads 360p videos, is there any way to improve the video quality? Thanks

debakarr commented 2 years ago

I wrote a quick python hack: https://gist.github.com/Dibakarroy1997/0104c0a91913f9261f604c1a4061a14f

For some courses it only downloads 360p videos, is there any way to improve the video quality? Thanks

We just need to add -f bestvideo+bestaudio to the yt-dlp command. I just updated the script with the same.

erfansahaf commented 2 years ago

@Dibakarroy1997 Thank you for this useful script.

Since you already know how to extract the download links from DOM, could you please update the extension code to do the same? It will be a lot easier to use the extension rather than the code execution.

ppa1985 commented 1 year ago

not working for any courses.

ppa1985 commented 1 year ago

Yes, I have.

On Sun, Apr 16, 2023 at 12:57 PM Debakar Roy @.***> wrote:

not working for any courses.

Do you have access to the course?

— Reply to this email directly, view it on GitHub https://github.com/erfansahaf/kodekloud-downloader/issues/3#issuecomment-1510109566, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABQUGIFBO2QCM26ZKQ3UWWDXBOGNHANCNFSM44PCJ7EQ . You are receiving this because you commented.Message ID: @.***>

erfansahaf commented 1 year ago

Yes, I have. On Sun, Apr 16, 2023 at 12:57 PM Debakar Roy @.> wrote: not working for any courses. Do you have access to the course? — Reply to this email directly, view it on GitHub <#3 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABQUGIFBO2QCM26ZKQ3UWWDXBOGNHANCNFSM44PCJ7EQ . You are receiving this because you commented.Message ID: @.>

If I find free time next weekend, I'll be in touch with you to fix the extension.

aismatov commented 1 year ago

@erfansahaf are you planning to modify the extension in the next few days?

erfansahaf commented 1 year ago

@aismatov I'll come back and make this extension work again but I can't give you an exact time. Besides that, I don't have an active subscription plan on Kodekloud right now, so one of you guys that has an active subscription should provide me the account detail.

debakarr commented 1 year ago

I worked on a simple python alternative: https://github.com/debakarr/kodekloud-downloader Also added support to download the course directly to GDrive if required through Google colab.

aismatov commented 1 year ago

@aismatov I'll come back and make this extension work again but I can't give you an exact time. Besides that, I don't have an active subscription plan on Kodekloud right now, so one of you guys that has an active subscription should provide me the account detail.

now they have one-week of free access to the premium courses.

aismatov commented 1 year ago

I worked on a simple python alternative: https://github.com/debakarr/kodekloud-downloader Also added support to download the course directly to GDrive if required through Google colab.

Yeah man, thanks, such a wonderful tool!!!

sai999999999 commented 1 year ago

@aismatov It is not working it is downloading the videos but all the videos are having the same content.

@erfansahaf can you help to fix the tool so we can download the courses as we have only 1 week left for all the premium courses as free.

debakarr commented 1 year ago

@aismatov It is not working it is downloading the videos but all the videos are having the same content.

@erfansahaf can you help to fix the tool so we can download the courses as we have only 1 week left for all the premium courses as free.

You have to enroll before downloading course

erfansahaf commented 1 year ago

@sai999999999 @aismatov I didn't get it. Does Kodekloud offer a one-week free subscription for all users or not? If they do, does it require a credit card?

debakarr commented 1 year ago

@sai999999999 @aismatov I didn't get it. Does Kodekloud offer a one-week free subscription for all users or not? If they do, does it require a credit card?

They do. No credit card needed. Just sign up. Currently they are running Free week from 24th April to 30th April.

erfansahaf commented 1 year ago

@debakarr Ok then, I try my best to find a free time until 30th April and make it work again.

erfansahaf commented 1 year ago

Hey guys. I worked a couple of hours on this extension yesterday. I didn't fix the code but I'm sharing what I found out with you so if anyone is interested, they can participate and create a pull request. When I wrote this extension, the KodeKloud website was using Witsia for its video player. Now they're moved out to Vimeo. That's the main reason that the extension doesn't work. So a quick hack for downloading videos is installing a Vimeo downloader extension like this one and download each episode manually. Besides that, I tried to download the videos with my own code. If you keep your DevTools (Network) open, you can see that Vimeo loads a file called master.json. This file contains the video and audio chunks of the episode. Since it's chunked into multiple parts, we should download all parts, and then combine them together. In the end, we should have a video (m4v) and an audio (m4a) file. It's the time that we can use ffmpeg utility to mix them up and create a single mp4 file. The ffmpeg process could not be done within a Chrome extension so this extension should only extract the master.json files and give it to the user. We should provide another piece of code that downloads chunks, appends them, and uses the ffmpeg to produce mp4 files. This process can be done in a docker container so the users don't have to install ffmpeg binary on their OS.

muhabbad commented 1 year ago

Hey guys. I worked a couple of hours on this extension yesterday. I didn't fix the code but I'm sharing what I found out with you so if anyone is interested, they can participate and create a pull request. When I wrote this extension, the KodeKloud website was using Witsia for its video player. Now they're moved out to Vimeo. That's the main reason that the extension doesn't work. So a quick hack for downloading videos is installing a Vimeo downloader extension like this one and download each episode manually. Besides that, I tried to download the videos with my own code. If you keep your DevTools (Network) open, you can see that Vimeo loads a file called master.json. This file contains the video and audio chunks of the episode. Since it's chunked into multiple parts, we should download all parts, and then combine them together. In the end, we should have a video (m4v) and an audio (m4a) file. It's the time that we can use ffmpeg utility to mix them up and create a single mp4 file. The ffmpeg process could not be done within a Chrome extension so this extension should only extract the master.json files and give it to the user. We should provide another piece of code that downloads chunks, appends them, and uses the ffmpeg to produce mp4 files. This process can be done in a docker container so the users don't have to install ffmpeg binary on their OS.

Is not there another good way? How does vimeo downloader work? Can not you follow the same method? If you can help us, we will thank you.

erfansahaf commented 1 year ago

@muhabbad The Vimeo extension is not open-source so I can't search through its codes. However, as I explained in my earlier comment, the video and audio are separated so the Vimeo extension can't combine them as a single MP4 file too. It only allows you to download video and audio individually.

@debakarr Could you explain how you download the videos with your Python script?

debakarr commented 1 year ago

@muhabbad The Vimeo extension is not open-source so I can't search through its codes. However, as I explained in my earlier comment, the video and audio are separated so the Vimeo extension can't combine them as a single MP4 file too. It only allows you to download video and audio individually.

@debakarr Could you explain how you download the videos with your Python script?

I am parsing each page using requests+BeautifulSoup4.

Using the user session cookie and yt-dlp package I am downloading the Vimeo videos.

Probably can make a chrome extension using pyscript.

erfansahaf commented 1 year ago

@debakarr How do you extract the download link and pass it to the yt-dlp?

debakarr commented 1 year ago

@debakarr How do you extract the download link and pass it to the yt-dlp?

That logic is part of yt-dlp. Extractor for vimeo is here: https://github.com/yt-dlp/yt-dlp/blob/master/yt_dlp/extractor/vimeo.py

There is probably wrapper for yt-dlp present in javascript.

muhabbad commented 1 year ago

@debakarr How do you extract the download link and pass it to the yt-dlp?

That logic is part of yt-dlp. Extractor for vimeo is here: https://github.com/yt-dlp/yt-dlp/blob/master/yt_dlp/extractor/vimeo.py

There is probably wrapper for yt-dlp present in javascript.

Can you give an example for us on how you do it? I am trying to get it but couldn't achieve it.

debakarr commented 1 year ago

@debakarr How do you extract the download link and pass it to the yt-dlp?

That logic is part of yt-dlp. Extractor for vimeo is here: https://github.com/yt-dlp/yt-dlp/blob/master/yt_dlp/extractor/vimeo.py

There is probably wrapper for yt-dlp present in javascript.

Can you give an example for us on how you do it? I am trying to get it but couldn't achieve it.

The code is present in https://github.com/debakarr/kodekloud-downloader

muhabbad commented 1 year ago

@debakarr How do you extract the download link and pass it to the yt-dlp?

That logic is part of yt-dlp. Extractor for vimeo is here: https://github.com/yt-dlp/yt-dlp/blob/master/yt_dlp/extractor/vimeo.py There is probably wrapper for yt-dlp present in javascript.

Can you give an example for us on how you do it? I am trying to get it but couldn't achieve it.

The code is present in https://github.com/debakarr/kodekloud-downloader

Thank you so muchh

muhabbad commented 1 year ago

@debakarr How do you extract the download link and pass it to the yt-dlp?

That logic is part of yt-dlp. Extractor for vimeo is here: https://github.com/yt-dlp/yt-dlp/blob/master/yt_dlp/extractor/vimeo.py There is probably wrapper for yt-dlp present in javascript.

Can you give an example for us on how you do it? I am trying to get it but couldn't achieve it.

The code is present in https://github.com/debakarr/kodekloud-downloader

Is it possible to share the courses over any drive environment If you have downloaded them? I am getting too many errors like this :

image