Best Answer

Anyway to download a video after it has been uploaded to Docebo?

  • 31 August 2021
  • 28 replies
  • 2541 views

Userlevel 3
Badge

We’ve recently had someone leave the organization who had done quite a few content uploads for us. We were under the impression the person had left copies of the original videos in our data backend, however it seems we were misled. 

Is there any way to download a copy of the video after it has been uploaded to Docebo? When viewing the Learning Object, we can see the video has been “renamed” by Docebo, most likely during the rending process. I just need to snag some copies from a few Learning Objects so we can make a few edits and reupload.

Thanks so much for the help!

icon

Best answer by natemadel 2 September 2021, 15:21

View original

28 replies

Userlevel 5
Badge +1

I’m assuming it’s a video in a course? I recall seeing a post on this forum where someone spotted an API call was added to download materials. 

I ran into a similar situation but it was for Coach & Share assets (we typically upload videos to channels so learners don’t have to enroll into them, which is annoying just to watch a 2 or 3 minute video). When that happened, I wound up enabling the download option for each in the Asset > Edit menu and then manually downloading each. A hassle but it goes fairly quickly.

Userlevel 3
Badge

Hi mark,

 

Thanks for the advice! It is in a course, an ELearning Course.  If there was a way to download it via API, we would be willing to try that. 

For our New Hire program, we aren’t utilizing Coach and Share so that option is out of the question, but I’ll definitely keep that in mind as we grow and evolve.

Userlevel 5
Badge +1

Hey @dhall !

 

I can confirm this can be done via API. This may get a little techy so hold on tight. 

 

  1. Navigate to the course where the video resides
  2. Play the specific learning object you want to download
  3. Look at the URL in the browser. It should be formatted like this: https://platform.docebosaas.com/learn/course/50444/play/260/my-video
  4. You will want to copy whatever number is shown in the url in the place of the “260” number above, this is the ID of the learning object being played (be sure not to grab to course ID, which is “50444” above)
  5. Go to yourplatform.docebosaas.com/api-browser
  6. On the left hand side, find the “Lo” category and click it
  7. Within that category, find the item “Get Downloadable Link for Training Materials” and click it
  8. Paste the learning object ID that you copied earlier (260 in our example) and click “Try”
  9. The call will either return a link, or it will return “job_status”: “in_progress” within the message body. If it returns a link, just paste that link in your browser, click enter, and it will start downloading a zip file containing the video. If it returns “job_status”: “in_progress”, wait ~ 20 seconds, close the popup window, then click Try again. Rinse/Repeat until it returns a link. It can take a few tries if its a large video (basically, the system is downloading and zipping it, and needs time to do so). The link will look something like this “https://cdn1.dcbstatic.com/files/a/p/platform_docebosaas_com/1630598430/WZqSCejiiXn5jRACjf93Nw/webapp/my_video_16.zip"

Hope that helps and let us know how you do!

 

Nate

Userlevel 3
Badge

@natemadel, thanks for providing the steps! I’m going to try these out with my team and see what we can grab following this. 

I’ll update this thread once we’ve tried it once or twice and let everyone know how it goes!

Userlevel 5
Badge +1

Sounds good! I’m here if you need me ;)

Userlevel 3
Badge

Hi @natemadel,

 

I was able to follow your instructions very easily. Unfortunately, it seems my Docebo profile lacks the appropriate permissions. I am a Superadmin for our Docebo Platform, however I was reviewing this API Authentication article and in the “Using the Client Credentials Grant Type” section, it states a specific permission is needed without providing what that permission is.

I’ve sent a request to our primary Docebo Administrator for access. Do you happen to know what specific permission is needed?

Thanks again for your help and guidance! If this works, it’ll save me and my team weeks of heartburn!

Sincerely,

dhall

Userlevel 5
Badge +1

@dhall sent you a DM, we’ll get it sorted :)

Userlevel 3
Badge

Huge shout out to @natemadel  for helping me figure out the problem. There’s a step missing. I just needed to Authenticate after step 7 and before step 8 (there is an OAuth button there. Click that then “Authorize”). I’ve marked his answer as Best Answer because it does exactly what I need it to do! Thanks again, Nate!

 

-- dhall

Userlevel 7
Badge +3

Our hero @natemadel does it yet again 👏  So glad this one was resolved for you @dhall! @mark you may be thinking of tip #2 in the following guide shared by @ryan.woods a few months back. It outlines the same steps that Nate shared in this post. 

 

 

Userlevel 2
Badge

Hello, I am trying this now, and included clicking the OAUTH button to allow ‘Swagger IU’ to access my platform, but still receive this error when I attempt to get the downloaded video file (see below).

Does anyone know where I am going wrong?

 

Userlevel 7
Badge +3

Hey @abaumgard, it looks like you’re receiving this error due to an invalid parameter for the ID you’re providing. Are you certain that you’re using the correct ID for the training material you are attempting to download? Here’s an excerpt from @natemadel’s instructions:

  1. Look at the URL in the browser. It should be formatted like this: https://platform.docebosaas.com/learn/course/50444/play/260/my-video
  1. You will want to copy whatever number is shown in the url in the place of the “260” number above, this is the ID of the learning object being played (be sure not to grab to course ID, which is “50444” above)
Userlevel 2
Badge

I was, indeed, looking in the wrong place. I have figured it out now.

Thank you!

Userlevel 7
Badge +3

@abaumgard Awesome, glad to hear it!

I’ve tried following through these steps, but hitting doing the OAUTH button and then doing “Try”. I keep getting a 403 error. Any advice on what I’m going wrong is appreciated! I am a Superadmin on our instance.

Userlevel 7
Badge +3

Hey @Justin, can you confirm that you completed authorization via OAUTH before testing the endpoint?

You should make it all the way to a screen like the following screenshot, where you should then select Authorize.

 

 

If you’ve taken the appropriate steps to authorize before testing, could you please share a screenshot of what you see when you enter the Training Material ID and select Try?

Hi Adam,

Thanks for the quick response! I did click through authorize before selecting Try. Here’s what I see:

 

Userlevel 2
Badge

Justin,

Can you share the full URL that you are pulling the 3 digits from? It is possible you are entering the wrong one.

For example, this is one of our courses:

 https://jushi.docebosaas.com/learn/course/141/play/372/leaflogix-retail-all-states-how-to-videos-managing-the-guest-list

 

If I enter the first sequence of 3 numbers (141), it does not work and I get that same error you are showing; I have to enter the second sequence (372).

Adam,

Here is the full URL:

https://learning.sandvine.com/learn/course/18/play/102/history-of-sandvine

As you can see I am using the second sequence (102) of numbers).

Adam,

Here is the full URL:

https://learning.sandvine.com/learn/course/18/play/102/history-of-sandvine

As you can see I am using the second sequence (102) of numbers).

Oddly enough, I just tried a video from a different course and it worked fine!

Is there a course specific, or LO specific setting that would be preventing me from downloading that specific object?

Userlevel 2
Badge

Hmm, odd. I receive that error when I put the wrong code in.

The course is definitely published and still active in the system?

The course is still published and active.

I investigated a bit further, my account does not have the ability to download item (102). However, if I authorize as the person who originally uploaded the LO and it worked.

Is it possible that only the person who uploaded the LO has permission to use the API this way?

 

Userlevel 2
Badge

Extremely possible! All of the ones I tried I was the Docebo uploader for, so they all worked for me.

Hey @Justin, can you confirm that you completed authorization via OAUTH before testing the endpoint?

You should make it all the way to a screen like the following screenshot, where you should then select Authorize.

 

 

If you’ve taken the appropriate steps to authorize before testing, could you please share a screenshot of what you see when you enter the Training Material ID and select Try?

 

Hello! Question about this OAuth step. It looks like if I click Authorize, the authorization is for that single user account correct? Not for all users of the platform. Could a learner, someone who’s not an employee, follow this path and download the video? I’m attempting to test and wanted to ask here too. Thanks!

Userlevel 7
Badge +3

Hey @Justin, can you confirm that you completed authorization via OAUTH before testing the endpoint?

You should make it all the way to a screen like the following screenshot, where you should then select Authorize.

 

 

If you’ve taken the appropriate steps to authorize before testing, could you please share a screenshot of what you see when you enter the Training Material ID and select Try?

 

Hello! Question about this OAuth step. It looks like if I click Authorize, the authorization is for that single user account correct? Not for all users of the platform. Could a learner, someone who’s not an employee, follow this path and download the video? I’m attempting to test and wanted to ask here too. Thanks!

You are correct that is a log on for your account only, however the direct API access is currently limited to system admins. There are ways using things like iframe embed to pass these rights onto users, but you would need to essentially build a mini-application to run in it to work. 

Excellent @Bfarkas! Thank you for confirming the API Authorization is per account, and that only System Admins can utilize the APIs. That’s exactly what we want; we don’t want non-employees or non-Admins using these features. Much appreciated!

Reply