Skip to main content

Hi everyone, I’m Roberto Moscatelli from the Docebo Support team and I would like to share the steps to download training materials from previously uploaded into the platform.

Even if it’s not possible to download a content from the UI, you can do it via API.

This document describes what content can be downloaded and how.

 

What type of content can I download?

 

Not all content previously created/uploaded in the platform can be downloaded.

The content that you can download are:

  • SCORM

  • XAPI

  • Videos (video uploaded or screen recording, you cannot download a “Youtube, Vimeo or Wistia” video

  • File

  • Slide converter (you will only be able to retrieve the JPG files of the presentation)

  • HTML Page

 

Please also note that for security measures the link is temporary, not permanent

 

Must conditions

 

To be able to download a content you must:

  • Enable the “API & SSO” app on the platform

  • Be enrolled in the course in which there is the training material

 

Download the content

 

As said before, currently it is not possible to download training materials from the platform user interface, however, it is possible to perform such operation by calling the API 

GET /learn/v1/lo/{id}/download

From the API-browser page (https://yourplatformname.docebosaas.com/api-browser)

 

Let’s see an example:

izKQlWcQOcMO1qnLuyvYwN9_-Mvd5O8ErxOz-OGQxaRbpZ4VD3Lc52ReCbBzPGEV2Ug2swwafWE-1zhQxmv1NHJRWXWVb_G3mjCivLjS9YUmYFEWKWNMQo7a9DHMX6uz7GisTJ9Gske1nNkNoZu6fOwZdwhwJFc4bY1akSLRpeR70jHUByeZAC2Wow

 

(“API & SSO” app is already enabled on the platform and our user is already enrolled in the course).

 

As you can see there are some training materials (all of them are “types” that can be downloaded).

The procedure is completely the same for all of the training materials.

 

Now move to the api-browser page at the following link:

https://yourplatformname.docebosaas.com/api-browser

And search for the “category” LO and the api “Get downloadable link for training materials”

oBiWJy9z5vlExsw8GZr89oPZ6U-sjYdEGdavKyErkUhTZcm3AVhWtjrMHetEbrb2bgH0WQHpEG6jxlL6PtjpFvgicd65Lhl7vnmqEQzoS-5rcTWe4HVYWCxtR4C8k4_vo7mvN0K7kbnZa_QWh3TIFdpkYclKcrEZS3ipZ4--iRm5oGx0gEFmMMWidw


The only required parameter for this call is the “ID” of the training material.

To retrieve it just go back on your platform, select your training material clicking on the hamburger menu, hover with mouse on “delete” and keep hovering until you see the “id_object” at the bottom left:

 

7ebsZ5WgvuSDK4KJtE_9h2wyl6rrXtB58shfbPkcUrI8i0TakP6cgDpnzm2AYr19ruGvmsLFhdnzmyGCoBMyKA8dfuAJprI4O78FfCfRa1RDty8131VQpO6nD8TVdTR-7StWZo3UvqXjeSdk4l9PnE8R-PaiPA_xbKiqOf1wiS8UKBdZQZtNTSVkhQ


Now go back to API-browser page and insert the ID and, before launch the AP, you need to authenticate clicking on “OAUTH”::

hxXreMyQJIcqDBhvsHqdb2x5OyQioUjlr9x9IT8wr9tWTGqcCVbobka16tHNrzKgvvpg1EOChUjLJk0dQ8kxpwGobLs6etbxlL5Sy22K2gu5ADuqG2_IWZa3EX0mNn1rxwi3sIygn-otwZ_VwFFjdTpmt1_m4rBj4fRjhZUW3TDR-pLzLrB7-xB2aw

 

8fFM0eE_RZnJ0z-kgGZ1xB4zwCDjcExLZfaeA4Z5RnDmOfAhtNeFwzPISd2h5qbGPU8hJQNJbcITNFc8NZBVaYF_AztHdLUWNN1tgofeBc-E8oPMOgCvTbCJUYLoI9_Hcf0Nxcii-aEDdANfYy-utdOZFgdIu4GnBWOL19uJVQn_q1pgb2JFDk8iYw

 

CXkC-5Z4XwhaqQeOF9f1nGgnthhGdAcHGFtX-cELqTCGXS5kcp2YFUvzzcKqQKLWrKeIFG3K4ouMVfcimQ8yRd5zpHK4VDe1P7CoC9y6D6CFpK5eb32pwKa3TD1h8wuwZsP806KhqWf3rbqn-5t7VItf9aOTulQeA9iwIiFIuAAoK7WGbei-eNk7GA

And then you can finally click on “TRY”:

2yzMUcAfb6UsqRKolmr4BcR9OIwavXXp8QJYG7ZVDzDbfucEiDcX32BsQKVjV1Nt2ZK26A390KJnJhMYLcXoljtCF4_qsk-CJKgpsF4n1SW_iEBuU9e6TvT4Csb8cEOjCPLx7O7vrPaS0UuoYiPUilKr2ZcKQo_ZjucaLQ2mUOaMcpIh2--EUMSO8w

 

As response you will receive a link and, going to that link, you will download the content

 

:Tr2pSXVretyZs4rW_Wh6dK7M6zJKl19LK7-_AMbWOXlWY2XsYqa0lZF5-Vng1yNRg6qdXOyBgAL5GEG7EB1RK9x4HCN9wrd0jIJ9_XRjRFbtbo7E_5ydiAjDb21DImaVg9BbL2Z0STlXdYgYc-ov6aHCN6wWJkEi0UvGepQQ7_7EDIpjQM_dmk-SfA

 

Tips and Tricks

 

Progress Message

 

The response of this API call could result in an “in progress” message and you will not receive the link:

 

Bspi99N8FnSpz7IAL-KlwTwc3AVYFBLzHtdv4AO0cfT4WVIzcKSSV-lFAr1v7-GaEttkQxF-92bjYz4W5yTWLtt4q7Ta0QDwMWfehOsgUIwdUK6-p1h9LRoE-tORxyTAEQkTJxNqmuD6972XB2PCpy7U3Z6inUsQIADKiF-E0cqH2hx1wZKeN8ipjQ

 

In this case you should wait, so it means that you need to close and click on “TRY” to launch the API call again until the “job status” will be “completed” and the download URL will be presented in the response.

 

Training Material in Central Repository 

 

In case of a training material linked to the Central Repository, you cannot take the ID_LO from the Central Repository because it will not work. You need to retrieve the ID of the Training Material directly from a course. 

As at the moment there is no expected timeline for the release of the new version of Central Repository and the download option for training materials will be absolutely taken into consideration, we suggest to follow and vote the following idea:

https://community.docebo.com/ideas/downloading-from-the-central-repository-3940

 

Tests

 

Tests cannot be downloaded via API.

The only way to download a test is going into the course, select the training material “test” and export as GIFT:

 

-y0mpLJXj9Aqn6t8inY0LLJG3_BHRsXmumu9cjvuhVhNF_IthsqLWLo85P1acOiWExoVlqwvQuK1rnGIGHIjmsE3UkIkFifbN301SbFhIFFdnAbeJHzTeiuykCxTdyJG4ZBZTwAu8B8pfrgs0Jc07e9cwMk0cQcxlNchg4o2Dwm9AkPTV_2LgKiOEw

You can find more info in our KB article at the following link:

https://help.docebo.com/hc/en-us/articles/360020083960-Managing-Tests-in-GIFT-Format

 

Download all training material from a course 

 

If you need to download all the training materials in a course, you can use the following API (under “Course” section in the API-browser page):

GET /learn/v1/courses/{id}/download

 

Inserting the ID of the course, instead of the ID_LO (in our example the “course_id” is “27”):

 

ulRpW5m6pXgWmRkYlU71gStHPn21ymGk2zxPklEK0QLELkLVDQ8CpmmiwbDDYh8D5qJuTJbDfnfb0w_1gk2ylqJL7TqoDZDz0FOXhcBNGml_UoDN596VTpAg_gsO0F0C1vYANrUPtKH51voXvItP2k7CcQah18DTQZhyzGe_HNxR4Mlto10gb0XN8Q

 

 8kjXnjDbzlkAMFHW2ui65LZ_2pek00kP-rGbmdNDrW_6Vvw1ezZ0KbxxDYOUBItRbI_G_MylYrmy4Xa-qhK2M2XVmJ2mBhvHxqKpNsiJCRIFNE5WDt7RfI5l9zoU1Jv5rzIYzDa2aYT7gdETisvhFTlyDuoV2-8BIgVMpoMdj8khCU6TbSg5bbkzrw

 

 After this, once the “job_status” is completed, you will receive more than one link (for every training material):

 

Hol2GWSRX-DiyfNXFG8u--MvVmof_nulMSpV2s38y33vt_qTyuDm65rdMOd6o2ONz4PYPhNoXQN_ucfwPyFUkUngusbe8OVfhmNtm5IcVSQgoCknMN3z9INCrsE-GS2HVIFAGoPtnCdc9rCLlbKiLGT7OweYcWEmlICeVC4898ukTzspJbtrDZcWuw

 

Please share any feedback and/or questions below.

Thank you for officially documenting this! This may be one of the most common ‘I didn’t know you could’ conversations i run into with folks regularly.


I’m curious - are folks looking to do this because the files that were originally uploaded were lost?


Thanks for posting @roberto.moscatelli this will surely come in handy at some point.


I’m curious - are folks looking to do this because the files that were originally uploaded were lost?

This has been the case when i’ve done it, or mis-managed, or it was just quicker since i had this access to grab something to either test or review.


Something I have encountered a few times especially during implementations and at times when new designers are not always familiar with the ops practices...and the like...When I had an LMS with its own private content server, this was never an issue and easy to get back to a previous version of content or download to use on different site, etc. (sandbox to production, for example).

This can also be handy when updating course content and you want to maintain the older version to maintain user history or when there is a need to access the old course content that may have been misplaced on lost on an internal server, etc.

Not that we’ll use this everyday but it’s good to know it’s an option.


It’s definitely not an everyday tool, but used definitely multiple times over the course of the year and it’s incredibly useful/life saver when used. 


indeed


Despite following the steps above a few times I get “Permission denied”, API/SSO is enabled and I’m enrolled on the course. Any suggestions please? 


Despite following the steps above a few times I get “Permission denied”, API/SSO is enabled and I’m enrolled on the course. Any suggestions please? 

Are you a system super admin?


@roberto.moscatelli having issues trying to download an xAPI package...I keep seeing “in progress:” and the link is never generated...any ideas?


Has anyone had any success getting a link to download xAPI packages? We can get this to work with SCORM without issues but when we try it with xAPI, it continually says “in progress” although the serve code “200” insinuates it was successful...had to log a ticket on this and so far no luck

@roberto.moscatelli any ideas? Thank you.


Thank you for these directions! I needed to download a video file that we lost and your steps were easy to follow. 


Hello @roberto.moscatelli 

I try and follow these instructions but when it comes to the authorization is required page, I get an access denied screen:

I am a super admin and I am enrolled in the course. Could the issue be that we don’t use passwords to get into Docebo but use SSO?


This article just proved itself to be highly beneficial with working with Docebo Content / Go1 Courses. If for whatever reason you are working with content and you need to have people take the course again? You may have worked up a special workflow in the past between Go1 support and Docebo Support.

That is NO LONGER NECESSARY.

You can download a .zip file of the Go1 content (it is only a skinny SCO with descriptors/endpoints for your Docebo instance and the Go1 servers mind you - so you cant just run off with the content) so that you have folks take the course again without the need to archive enrollments - which is a BIG story by us.


Thanks for the post. However, tried “poll” today,  It won’t work, neither with LO nor Course endpoint.Its Complete without a link though.


Is there a way to save this post for later??  Also, can we download videos loaded as assets?


Can I use this same process to download all training materials and transfer them to another LMS?


Hi @roberto.moscatelli The zipped folder upon download is empty every time. I crosschecked with different files. Could you suggest what’s going wrong here?


Hi ​@dklinger. Can you expand a bit on your reply about working with Docebo Content / Go1 Courses where you need to have people take the course again? Are you saying to follow the API instructions in this article and create a course with the “skinny file”? We are running into this same issue with the CLOR and the LO being marked as complete when the desired result is to create a duplicate course with a new LO and have learners take the content again while maintaining the learning record. Any help appreciated.

UPDATE: I think I figured it out and this article was super helpful! Grateful for this community and all the workarounds shared!


@Jill Allen - happy to hear that it worked for you!


Can I use this same process to download all training materials and transfer them to another LMS?

@jordanb - hi - sorry just seeing this.

So the short answer is probably no.

All learning systems are happy to gobble up your learning. Not all of them are happy with the format you bring to them.

The note that I attached - in theory? You get a SCORM back out of the system. And SCORM remains the 20+ year old gold standard that many learning systems will import. And if you are migrating to another learning system, I feel comfortable saying - it will be happy with it.

But even with SCORM there are caveats. For example - what I described? Getting a skinny SCO back out of the system is doable. Skinny SCOs represent that there is a redirect happening in the file itself for the rest of the SCORM feedback. Like AICC, it is typically happening on another server that is acting as a content controller.

If you want to learn a little more about that approach? Rustici Software has a Content Controller that they actually sell and use. More publishers are going towards the technology set as it is very efficent at counting the usage of the course. This can sneak up on you and the content may not work if it is at an unexpected endpoint. Go1 courses should in theory fail…once they detect the different endpoint.

With full blown SCOs you are probably ok (read ​@lrnlab usage) - you will be able to use them elsewhere. You may need to unpackage the zip file but you should be ok. For xAPI files - you will see that ​@lrnlab had issues with the approach.

Once you are outside of that space - you are beyond my scope of understanding. I hope you get back a media file - like a video or PPT and other media (sound files, PDFs) that you fed to the system. I would highly doubt the system will export other internal learning objects - like assessments, observation checklists, even HTML pages. I would highly doubt if you built the content directly in Docebo that you will be getting it out of Docebo.

 

Two minutes later - the beginning of the article numberates through what you can download:

  • SCORM

  • XAPI

  • Videos (video uploaded or screen recording, you cannot download a “Youtube, Vimeo or Wistia” video

  • File

  • Slide converter (you will only be able to retrieve the JPG files of the presentation)

  • HTML Page (and SO I eat crow here 🐦) looks doable...


Reply