Storyline + iPad + Tin Can + Moodle solution?

Oct 24, 2012

Hi All, 

Has anybody found a effective method of delivering content built in Storyline, to customers using iPads, via a LMS such as Moodle and tracking results?

Our specific requirement is to have our customers self register on Moodle and use enrolment keys provided by our sales staff to access the Storyline course on their iPads and have results tracked and reported by Moodle.

So far I have tried:

  • SCORM Cloud + Moodle via iPad, but the Java scripting was blocked by Safari and therefore unable to launch the cloud hosted Storyline course. When it does work I get a "Content Authorization Failed" error.
  • Exporting the Storyline course in HTML5 (with LMS support),  uploading it to Moodle and accessing it via Moodle using Safari but the player displays far too small and playback is clunky (requires scrolling etc.)
  • Exporting the Storyline course in HTML5 (no LMS support) and loading directly into the Articulate mobile player app. But obviously there is no reporting of courses unless the Storyline course is using TinCan standard. 

59 Replies
eLearning Development


one method i have used to accomplish this in moodle is to have the resources and practice exercises done in articulate and do the final quizzing in moodle.  I then insert the moodle test as a web object in storyline.  This opens in moodle in storyline and allows them to sign in and do the test.  I have used this a couple of times but could not tell you who did it on ipad and who used pc but it did work in my testing,  I also like the reporting better in moodle for testing so try to use it whenever I can.


Jamie Smith


I have been successfully launching and tracking Storyline as Tin Can packages on the iPad using the Mobile player from Moodle. 

I have an ongoing project where I've built an LRS that lives in Moodle as a local web service plugin and combined it with a modified SCORM plugin. 

The purpose of this project was to host Storyline and launch and track it on the iPad. I wanted to fully utilize the tracking and protected content. So far it's been a great success, although I do have a pretty decent wish list for features in future versions of the mobile player. 

I am using Moodle 2.4.1 as my baseline for development. I have repositories for the plugin and the modified SCORM module on Git. If anyone would like to test drive the code it's under my username jgsmitty. 

I still have a fair amount of documentation, cleanup, and debugging. However, it seems to do a good job of at least being able to launch, track, and report on the Storyline Tin Can packages. 

BTW. This solution does not rely on SCORM Cloud but is a stand alone solution that collects Tin Can statements and translates them to traditional SCORM tracks. So, your reporting is just as if it were a SCORM!


Jamie Smith

Thanks for the support!

The address for Git access to my projects are:

Read the README files for instructions. The SCORM module complements the API plugin to add support for hosting of Tin Can packages (only Storyline by Articulate has been tested).

*Most importantly, make sure your Moodle settings and permissions are correct. You must enable web services, REST, and provide permission to users to access the API.

I'm continuing to debug issues regarding Mobile player communications and general cleanup. Once it's somewhat stable I should be able to do some better code cleanup, documentation, and work on continued conformance to the latest API .95 standards.

Functionality to come will be the ability to conduct statement queries, etc. Right now it mainly serves the purpose of launching and tracking Tin Can projects launched via the modified SCORM module.

- Jamie

Shay McAuley

Hi Jamie

Firstly I would like to sincerely thank you for sharing your plugin and knowledge with us. We really appreciated it.

I am having some trouble getting all of this to come together. I have installed a test instance of Moodle with your plugin and modified SCORM module. I am able to upload zip packages that include the tincan.xml and host them on my Moodle site.

The trouble is my test results from the mobile player are not being logged by Moodle. I get a 'unable to connect to server' error dialogue box every few seconds on my Articulate mobile player. The connection must have worked at some stage because the course content has fully downloaded into the Articulate mobile player app. 

I am guessing (and totally guessing here) the problem is that the TinCan statements generated by the Storyline course are being knocked back by my Moodle instance. 

To test this theory I hosted the Storyline package in a open directory on our web server and the error went away. Obviously my open directory is not a LRS or LMS so no results were tracked, but it is one step close to me understanding the problem.

I thought it could be a user permissions problem, so I tried to complete the course as a enrolled student, administrator and teacher but no luck with Tincan results tracking. I even checked to see if each enrolled user had a Token, they did. 

I enabled REST and web services as you instructed but still no joy.

Am I missing something simple? – I am happy to provide account details of my Moodle instance if you would be so kind as to take a look. I am out of ideas.

Jamie Smith

Hi Shay.

It sounds like the content endpoint and authorization is working fine since you're able to download and view the content. The intermittent error implies that the statements are somehow being rejected. Unfortunately, the Mobile Player doesn't allow specific error messages be sent from the remote connection.

One reason would be that you, at some point, updated the content in Moodle and then launched the content directly from the Mobile Player. If new content is uploaded, the original SCO is often replaced with the newly uploaded one. Since the launch parameters used by the Mobile Player specify the SCO id, which would no longer exist, the TCAPI will return an error. To resolve this, you simply need to relaunch the content from Moodle. This will replace the existing lesson in the Mobile Player and provided the new launch parameters.

One other issue could possibly be with your server not having access to the apache_request_headers function, if running the apache server. The .htaccess file provided in the package should help resolve the redirect of the headers. So, you might check if the .htaccess file exists in the /local/tcapi folder. You could possibly do some troubleshooting by enabling the TCAPI_LOG_ENDPOINT in the locallib.php file located in the /local/tcapi folder. A log.txt file will be created/appended whenever a new request is made to the API. You can tweak the output by modifying the /local/tcapi/endpoint.php file.

If this doesn't solve it for you, let me know.

Jamie Smith

Darren Besanko said:

Interesting. My Moodle site is hosted by a Moodle partner. What instruction can I tell them to help me achieve this?

I have my scorm package on the iPad successfully requesting the Articulate Mobile Player, but then 'cannot grant access' message appears.

If you don't have direct access to the file system of your installation, your host will have to copy the files into place. Once the files are there, you should be able to walk through the instructions in the Readme file and walk through all the admin setting required to enable the webservice communications that the API needs. Basically, there are user permissions, web service enabling, etc. that will have to be modified to enable the API. The user permissions should automatically be modified as part of the installation. However, you should be familiar with the requirements in the event that trouble-shooting is necessary.

Overall, there shouldn't be a lot of effort involved on the part of your host to get it up and running.

The 'cannot grant access' message is a result of the content not being able to be accessed through Moodle. The file access has to go through the Moodle webservice file server where a user access token is required. The content endpoint included with the API provides this. The custom SCORM module provides the required launch parameters to include the content endpoint and user token for accessing the secure content files via Moodle. So, in non-technical terms, it would be impossible to access a Moodle hosted Articulate package and have it play in the Mobile Player since all hosted content in Moodle requires a user login, unless of course your site is open to guests and you have guest auto-login enabled. (At least I think this is how it would work.)

Andrew Downes
Hi all,
I've just completed a Moodle plug in that lets you launch Tin Can activities from a Moodle course and then track them with any LRS. You don't need to upload the activities to Moodle - just host them anywhere on the internet. This is compatible with activities implementing the Rustici launch method as described here: This includes Articulate Storyline and Adobe Captivate content. 
Get the code and give it a go here:
I'll be adding this to the Moodle plug in database and writing up the documentation including installation instructions over the coming weeks. This is the first iteration of the product, so suggestions, bug reports, code reviews and contributions are very welcome! Watch this space for more Tin Can related Moodle plugins in future. 
Shay McAuley

Jamie Smith said:

One other issue could possibly be with your server not having access to the apache_request_headers function, if running the apache server. The .htaccess file provided in the package should help resolve the redirect of the headers. So, you might check if the .htaccess file exists in the /local/tcapi folder. You could possibly do some troubleshooting by enabling the TCAPI_LOG_ENDPOINT in the locallib.php file located in the /local/tcapi folder. A log.txt file will be created/appended whenever a new request is made to the API. You can tweak the output by modifying the /local/tcapi/endpoint.php file.

Hi Jamie

It was at this point I realised I am out of my depth. I know that our Moodle site runs on Windows Server II6 but I wouldn't know where to find specific headers or interpret a log.

I reloaded the course onto my Moodle site with the hope of fixing the potential SCO id issue. Unfortunately the error still appeared.

I think you are right about what is causing the communications issue between Articulate Player and Moodle. Unfortunately I don't possess the technical know-how to progress testing. 

Thanks again Jamie for all your help.

Can anyone recommend someone to outsource the implementation too?

amey waingankar

Hi Leslie,

Thanks for your response, but still I am facing the same issue - not able to track the record. But, the same package when I hosted on SCORM Cloud I got all the tracking details worked properly and the course too executed well!

Also, can you please help me out for the TIN CAN API Link - Whenever I am hosting my course over server its shows me following error "Configuration data is missing or incorrect. Please try again." Attached is the screen grab for the same.

I am trying different options to host the TIN CAN API published course over our moodle2.5 but everything to vain. 

  • Over moodle I tried to upload the package, where the package has been uploaded but its not tracking.
  • I tried with TIN CAN API link, where I getting difficulty in hosting the package over server for Link and thus not able to launch and track the course.
  • I have also tried with Rustici SCORM cloud api over our moodle but that too not working. :(
Ashley Terwilliger-Pollard

Hi Amey,

If your course is working as designed in SCORM Cloud you'll want to share those results with your LMS team. Also, you'll want to check what version of Tin Can API your LMS supports, as currently Storyline publishes to Tin Can API 0.9 and you can find more information about publishing with Tin Can API here. 

amey waingankar

Hi Ashley,

Thanks for the info.

Now, I am able to track the record with Rustici SCORM cloud api over moodle for desktop version, but the same package when tried to launch through ipad safari browser it throws following error message "cannot access content - Articulate mobile player cannot access this content" 

Can anyone help for this?

Ashley Terwilliger-Pollard

Hi Amey,

You mentioned accessing it through Safari - but that the error message mentions the mobile player. Did you publish for both HTML5 and the Articulate Mobile Player? Since you're LMS supports the Tin Can API, you should be able to use the mobile player, as described here.  When accessing it through the mobile player, you'll need to be connected to a wireless network and logged into your LMS to click on the course and then it'll appear in your mobile player library. 

amey waingankar

Hi Ashley,

Yes, I have published the package for both HTML5 and Articulate mobile player.

The steps I followed over ipad are as follows

  • I access my moodle link through safari browser.
  • Then I logged into my moodle account.
  • I went into my created course and the I clicked on the Launch Course link.

Now here at this last step, it redirected me to the Articulate Mobile Player, but it prompted me the message "cannot access content - Articulate mobile player cannot access this content"

Ashley Terwilliger-Pollard

Hi Amey,

It's possible. At the bottom of the documentation link I provided you'll find the following:

If your LMS requires a login, learners might not be able to use the Articulate Mobile Player, because browsers cannot pass security credentials to iPad apps unless the LMS supports Tin Can API. You'll need to test your published output in your particular LMS environment if you plan to allow viewing in Articulate Mobile Player.

You could republish without the option for the Mobile player, and then they should still be able to access the HTML5 version. Just be sure to review the comparison of items that may not work in the HTML5 version

This discussion is closed. You can start a new discussion or contact Articulate Support.