FaisalUmair / udemy-downloader-gui

A desktop application for downloading Udemy Courses
MIT License
6.12k stars 1.72k forks source link

stuck in "bulding course data" #571

Open crixus91 opened 3 years ago

crixus91 commented 3 years ago

When i hit the download button. it stuck in building course data forever. please help me....

arjanv commented 3 years ago

here's 50 euro for the one who fix this problem;)

jyohan-dev commented 3 years ago

Has anyone tried using an older version if they are available?

S-Furman commented 3 years ago

https://github.com/r0oth3x49/udemy-dl/issues/627#issuecomment-826085690

ogeeDeveloper commented 3 years ago

Whenever i go on the actual course on Udemy i see that the course is set to no download so maybe that's the issue why its saying building course data.

askaleks commented 3 years ago

I can also pay 50$ to someone, who can manage to fix this issue. Fix it, send me a message and you'll 50$ get in your PP.

Dibadan commented 3 years ago

Whenever i go on the actual course on Udemy i see that the course is set to no download so maybe that's the issue why its saying building course data.

No no, it's possible to download with a simple fetch request to the api.

MrDavidson23 commented 3 years ago

Whenever i go on the actual course on Udemy i see that the course is set to no download so maybe that's the issue why its saying building course data.

No no, it's possible to download with a simple fetch request to the api.

Do you have the URL of the fetch request?

jyohan-dev commented 3 years ago

We need to solve this problem soon

Dibadan commented 3 years ago

Whenever i go on the actual course on Udemy i see that the course is set to no download so maybe that's the issue why its saying building course data.

No no, it's possible to download with a simple fetch request to the api.

Do you have the URL of the fetch request?

Try this simple function to retrieve a specific lecture information. It is an object with a property called 'asset' that is another object. Inside asset you should see an array called 'media_sources'. Here you should find the video 'src' for different kind of quality.

async function getData(courseID, lectureID) { let response = await fetch(`https://www.udemy.com/api-2.0/users/me/subscribed-courses/${courseID}/lectures/${lectureID}/?fields[lecture]=asset,description,download_url,is_free,last_watched_second&fields[asset]=asset_type,length,media_license_token,course_is_drmed,media_sources,captions,thumbnail_sprite,slides,slide_urls,download_urls`, { "headers": { "authorization": "YOUR_AUTHORIZATION_CODE", } }); let data = await response.json() return data; }

To know your Authorization Code, go on Udemy home page (you should be logged) and open the Network Tab.

Cattura0

Cattura1

MrDavidson23 commented 3 years ago

Whenever i go on the actual course on Udemy i see that the course is set to no download so maybe that's the issue why its saying building course data.

No no, it's possible to download with a simple fetch request to the api.

Do you have the URL of the fetch request?

Try this simple function to retrieve a specific lecture information. It is an object with a property called 'asset' that is another object. Inside asset you should see an array called 'media_sources'. Here you should find the video 'src' for different kind of quality.

async function getData(courseID, lectureID) { let response = await fetch(`https://www.udemy.com/api-2.0/users/me/subscribed-courses/${courseID}/lectures/${lectureID}/?fields[lecture]=asset,description,download_url,is_free,last_watched_second&fields[asset]=asset_type,length,media_license_token,course_is_drmed,media_sources,captions,thumbnail_sprite,slides,slide_urls,download_urls`, { "headers": { "authorization": "YOUR_AUTHORIZATION_CODE", } }); let data = await response.json() return data; }

To know your Authorization Code, go on Udemy home page (you should be logged) and open the Network Tab.

Cattura0

Cattura1

I'm having problems with find the CourseID, I have found everything else, but that is what makes my fetch request fail.

For testing the api, I'm using postman, hope it works

Dibadan commented 3 years ago

Whenever i go on the actual course on Udemy i see that the course is set to no download so maybe that's the issue why its saying building course data.

No no, it's possible to download with a simple fetch request to the api.

Do you have the URL of the fetch request?

Try this simple function to retrieve a specific lecture information. It is an object with a property called 'asset' that is another object. Inside asset you should see an array called 'media_sources'. Here you should find the video 'src' for different kind of quality. async function getData(courseID, lectureID) { let response = await fetch(`https://www.udemy.com/api-2.0/users/me/subscribed-courses/${courseID}/lectures/${lectureID}/?fields[lecture]=asset,description,download_url,is_free,last_watched_second&fields[asset]=asset_type,length,media_license_token,course_is_drmed,media_sources,captions,thumbnail_sprite,slides,slide_urls,download_urls`, { "headers": { "authorization": "YOUR_AUTHORIZATION_CODE", } }); let data = await response.json() return data; } To know your Authorization Code, go on Udemy home page (you should be logged) and open the Network Tab. Cattura0 Cattura1

I'm having problems with find the CourseID, I have found everything else, but that is what makes my fetch request fail.

For testing the api, I'm using postman, hope it works

You can use this function to retrieve your courses info

async function getMyCourses() {
  let response = await
  fetch("https://www.udemy.com/api-2.0/users/me/subscribed-courses/",  {
    "headers": {
         "authorization": "YOUR_AUTHORIZATION_CODE"
    }
  });

  let data = await response.json();
  return data;
}

From here you can see all your courses Id.

bissaka commented 3 years ago

Whenever i go on the actual course on Udemy i see that the course is set to no download so maybe that's the issue why its saying building course data.

No no, it's possible to download with a simple fetch request to the api.

Do you have the URL of the fetch request?

Try this simple function to retrieve a specific lecture information. It is an object with a property called 'asset' that is another object. Inside asset you should see an array called 'media_sources'. Here you should find the video 'src' for different kind of quality. async function getData(courseID, lectureID) { let response = await fetch(`https://www.udemy.com/api-2.0/users/me/subscribed-courses/${courseID}/lectures/${lectureID}/?fields[lecture]=asset,description,download_url,is_free,last_watched_second&fields[asset]=asset_type,length,media_license_token,course_is_drmed,media_sources,captions,thumbnail_sprite,slides,slide_urls,download_urls`, { "headers": { "authorization": "YOUR_AUTHORIZATION_CODE", } }); let data = await response.json() return data; } To know your Authorization Code, go on Udemy home page (you should be logged) and open the Network Tab. Cattura0 Cattura1

I'm having problems with find the CourseID, I have found everything else, but that is what makes my fetch request fail. For testing the api, I'm using postman, hope it works

You can use this function to retrieve your courses info

async function getMyCourses() {
  let response = await
  fetch("https://www.udemy.com/api-2.0/users/me/subscribed-courses/",  {
    "headers": {
         "authorization": "YOUR_AUTHORIZATION_CODE"
    }
  });

  let data = await response.json();
  return data;
}

From here you can see all your courses Id.

Please can you help in downloading udemy courses?

micalevisk commented 3 years ago

@bissaka what I've done to download one that was stuck in "building course data":

  1. download the js file attached on https://github.com/FaisalUmair/udemy-downloader-gui/issues/571#issuecomment-823997132
  2. git clone https://github.com/FaisalUmair/udemy-downloader-gui && cd udemy-downloader-gui
  3. git checkout v1.8.2
  4. replace the assets/js/app.js file by the one downloaded in step (1)
  5. npm i && npm run build-linux
  6. ./dist/Udeler-1.8.2.AppImage

EDIT:

THIS DOES NOT WORK

pypycode commented 3 years ago

image @micalevisk I did same step. but got this error. I do not know why, if you know please tell me. Many thanks

hasanli-orkhan commented 3 years ago

I did the same step and builded AppImage. After launching the app I tried to download the course. Course has downloaded, but the videos from other sections (captures) has height 3-5 kb. 1-st capture screen - https://i.imgur.com/0KgQGO8.png (downloaded videos is correct) 2-nd capture screen - https://i.imgur.com/cnhpIoK.png (downloaded videos corrupted)

blankster commented 3 years ago

@micalevisk can you confirm that your downloaded content is correct/not corrupted?

micalevisk commented 3 years ago

@micalevisk can you confirm that your downloaded content is correct/not corrupted?

they were corrupeted! lol my bad .-. idk what to do by now

iam-malithmax commented 3 years ago

I have done everything i know so far.does anyone know other options to download from udemy.im using a business account so udemey downloder dosent work.my business account going to end so im badly need a way to download. I really appreciate all your help.thanks.

micalevisk commented 3 years ago

@iam-malithmax have you tried to use extensions like Video DownloadHelper?

blankster commented 3 years ago

@iam-malithmax have you tried to use extensions like Video DownloadHelper?

Such solutions work, but it's more than painful to backup a whole longer course with many videos with this. Especially for courses that get updated more often, this is quite a grind... Or do I overlook an option to download a whole course?

Udeler is quite perfect, and I guess it's probably something small that blocks us. Unluckily I don't have the skills to fix it myself, but I thank everybody in advance who is capable of fixing this. It is so useful...

blankster commented 3 years ago

I support @arjanv also with a little bounty: Next to his 50 EUR I'll donate/PayPal 10$ to the person who fixes the current problem.

iam-malithmax commented 3 years ago

@iam-malithmax have you tried to use extensions like Video DownloadHelper?

I just tested it now.dosent work with business account.video sizes only showing in small bytes.anyway thanks for the reply man..

hasanli-orkhan commented 3 years ago

@iam-malithmax have you tried to use extensions like Video DownloadHelper?

A have tried Firefox addon of Video DownloadHelper and it's not working. VideoDownloadHelper downloading videos only from first capture (section). Videos from other sections not downloading

yomoko commented 3 years ago

let's each contribute $10 USD to the person who can fix it. Therefore someone might come out and fix it for us

MrDavidson23 commented 3 years ago

Guys, I'm a developer, I need to download a few courses I recently bought. So I developed an Electron App for doing this, sadly I built the app but the API (backend), this is:

Where the app gets the URL´s for get the videos is simply not working, in the image you can see in the bottom, that the download_url says null, that means that there is not link for download, that is why nothing works 😢

So the main error, is in Udemy API, hope they fix it soon, but for now, we can not do anything

Screen Shot 2021-05-06 at 6 59 11 PM

If you have any questions just let me now, I like to help :D

jyohan-dev commented 3 years ago

Don't think @FaisalUmair is planning to fix this

iam-malithmax commented 3 years ago

is there any new update?

jyohan-dev commented 3 years ago

Does anyone know any other alternative way?

Dibadan commented 3 years ago

Guys, I'm a developer, I need to download a few courses I recently bought. So I developed an Electron App for doing this, sadly I built the app but the API (backend), this is:

Where the app gets the URL´s for get the videos is simply not working, in the image you can see in the bottom, that the download_url says null, that means that there is not link for download, that is why nothing works 😢

So the main error, is in Udemy API, hope they fix it soon, but for now, we can not do anything

Screen Shot 2021-05-06 at 6 59 11 PM

If you have any questions just let me now, I like to help :D

The 'src' link of the course videos is available. You should see an asset object which include a media_source array. Great frontend you should just handle the src link and use a function to download the files. There are all video src for different qualities.

arjanv commented 3 years ago

courses with downloads enables seems to work fine but courses with downloads disabled not. downloaded successfully some courses with jdownloader but also a lot does not work, jdownloader says it has somethin to do with udeny's perimeterx protection

MrDavidson23 commented 3 years ago

Guys, I'm a developer, I need to download a few courses I recently bought. So I developed an Electron App for doing this, sadly I built the app but the API (backend), this is: Where the app gets the URL´s for get the videos is simply not working, in the image you can see in the bottom, that the download_url says null, that means that there is not link for download, that is why nothing works 😢 So the main error, is in Udemy API, hope they fix it soon, but for now, we can not do anything

Screen Shot 2021-05-06 at 6 59 11 PM

If you have any questions just let me now, I like to help :D

The 'src' link of the course videos is available. You should see an asset object which include a media_source array. Great frontend you should just handle the src link and use a function to download the files. There are all video src for different qualities.

Well, this is the screenshot from a lecture from a non free course, and idk where is the link for downloading

Screen Shot 2021-05-10 at 10 09 51 AM
bissaka commented 3 years ago

https://github.com/FaisalUmair/udemy-downloader-gui/issues/581#issuecomment-837029749

Pls can someone explain this process to download udemy courses

MrDavidson23 commented 3 years ago

https://github.com/FaisalUmair/udemy-downloader-gui/issues/581#issuecomment-837029749

Pls can someone explain this process to download udemy courses

Ok, so first the app needs your token, your token is a code with some information in order to know who is connected to the app

Then, the app can call the Udemy API, with the token in the header, and that call, will give you some information (your courses), in it will be the id's of the courses, you select the course you want, the app will grab the id of the course and will make another call, to get the lectures of the course, and with that, the app will make another call to the Udemy API to get the information of the lecture in that specific course in your specific user, and then, in that call, the response will give you the link of the video in order to download it, but that's the part where the API is not working, because it is a null in there instead of a link

Very basically that's the process

ScrubDonkey commented 3 years ago

There's nothing to fix here guys....The ride is over.....DRM has come to Udemy.....