QTI vs GIFT vs CSV: Which Quiz File Format Your LMS Imports
QTI is a zip package Canvas, Blackboard, Brightspace and Sakai import. GIFT is plain text only Moodle and Captivate Classic read. CSV means whatever the tool says it means.
By the VidQuiz team
August 2026 · 8 min read
Try it while you read
What you are looking at
Three quizzes VidQuiz generated from three real YouTube videos. They are saved output, not generated in your browser. Pick one to answer it, and open the source video to check the questions against what is actually said in it.
Your own video gets a fresh quiz once you sign up.
We have not read that link.
This page only serves quizzes that were already generated, and it does not send your link anywhere. Reading a video takes about half a minute of real work on our side, so it runs in your account, not in an anonymous demo.
QTI is the interchange standard Canvas, Brightspace and Sakai import, packaged as a zip. Blackboard is the exception people get wrong: its QTI importer is documented for QTI 2.1 and for the Original Course View only, so the route that actually works there is a tab delimited text upload. GIFT is a plain text format that only Moodle and Adobe Captivate Classic read. CSV is not a quiz format at all, it is a spreadsheet that a specific tool has agreed to interpret, so a CSV that works in Google Forms will not work in Storyline. Pick the format from the destination, never from the file you happen to have.
Almost every failed question import traces back to that last sentence. Someone exports a QTI package because QTI is "the standard", uploads it to Moodle, and gets nothing. Someone else builds a beautiful spreadsheet of questions and discovers that Canvas has no CSV importer. The formats are not interchangeable and no amount of renaming the file extension changes that.
This is the decision table, what each format can carry, and the three specific mistakes that account for most of the wasted afternoons. The format details here were checked against the Moodle 4.5 source, Adobe's Captivate documentation and Articulate's import spec in August 2026.
Which quiz file format does each platform import?
| Platform | Format it imports | File | Carries feedback? |
|---|---|---|---|
| Canvas | QTI 1.2 | .zip package | Yes |
| Blackboard (Original and Ultra) | Tab delimited text | .txt upload | No |
| Brightspace and D2L | QTI 1.2 | .zip package | Yes |
| Sakai | QTI 1.2 | .zip package | Yes |
| Moodle | GIFT (or Moodle XML, Aiken, Cloze) | .txt | Yes, per answer |
| Adobe Captivate Classic | GIFT or CSV | .txt or .csv | Yes, via GIFT |
| Adobe Captivate 12.3 and later | CSV only, GIFT dropped | .csv | No dedicated field |
| Articulate Storyline 360 | Its own spreadsheet spec | .xls, .xlsx or .txt | Yes, pipe separated |
| Google Forms | CSV, through an add on | .csv | Yes, as a feedback column |
| Microsoft Forms | Word or PDF, Quick Import | .docx or .pdf | No, and the answer key is lost |
| Kahoot | Its own spreadsheet template | .xlsx | No explanation column |
| Wayground (formerly Quizizz) | Its own spreadsheet template | Google Sheet or .xlsx | Yes, it has an explanation column |
Two things jump out of that table. Moodle is the odd one out among the big LMS platforms, because it reads neither QTI nor CSV. And the authoring and game based tools each invented their own spreadsheet layout, so "CSV" tells you almost nothing on its own.
What is QTI and when do you need it?
QTI stands for Question and Test Interoperability. It is an XML based standard for describing questions, answers, scoring and feedback, and it has been the way learning platforms exchange assessments since the early 2000s. You need it whenever the destination is Canvas, Brightspace or Sakai. Blackboard is the awkward case: it has a QTI importer, but Anthology documents it as QTI 2.1 and as Original Course View only, so a 1.2 package generated for Canvas is the wrong file to hand it.
The part people get wrong is that QTI is a package, not a file. A valid QTI export is a zip containing an imsmanifest.xml at the root plus the assessment XML alongside it. The importer reads the manifest first to find out what is in the package. Hand an importer a loose .xml file and it rejects it, usually without explaining why, because there is no manifest telling it what it is looking at.
Version matters less than people expect. QTI 2.x and 3.0 exist, but support across those four platforms is uneven, and QTI 1.2 is what they all import most reliably. If a tool offers you a choice, 1.2 is the safer file.
One more thing worth knowing before you import: on Canvas and Brightspace the questions land in a question bank or question library, not directly in a live quiz. You then build the quiz by pulling from the bank. That is a feature rather than an annoyance, because one import can feed several quizzes and a question you fix in the bank stays fixed everywhere it is used.
What is GIFT format and who reads it?
GIFT is a plain text format Moodle defines for writing questions in a text editor. A question is one block of text, the answer section sits inside curly braces, an equals sign marks the correct answer and a tilde marks a distractor. Feedback goes after a hash. Here is a multiple choice question:
::Sampling rate::
What does the Nyquist rate describe?
{
=Twice the highest frequency in the signal
#Right. Below this, aliasing occurs.
~The average frequency of the signal
~The lowest frequency the filter passes
~The clock speed of the converter
}
True or false is shorter, and short answer uses several equals signs to accept alternatives:
Aliasing can be removed after sampling.{FALSE}
Which filter runs before the sampler?{
=anti-aliasing
=antialiasing
=low-pass
}
Moodle's GIFT importer handles multiple choice, missing word, true or false, short answer, numerical, matching, essay and description questions. That is a wider range than most people assume from looking at a simple example.
The rule that breaks hand written GIFT files is escaping. GIFT treats ~, =, #, {, }, : and the backslash itself as syntax. If any of those appear inside your question text, they need a backslash in front of them. A chemistry question containing a literal equals sign, written without escaping, will either fail to import or quietly turn part of your stem into a second correct answer. The second outcome is worse, because the import succeeds and nobody notices until a student argues about a grade.
Outside Moodle, GIFT has exactly one other significant reader: Adobe Captivate Classic, which imports GIFT text files from its Quiz menu. The rewritten Captivate dropped GIFT entirely and added CSV import at version 12.3, so which Captivate build your team runs changes which file you need.
Why is CSV not really a quiz format?
Because a CSV only says how the data is punctuated, not what the columns mean. Every tool that accepts a spreadsheet of questions invented its own column order, and none of them agree.
Google Forms import add ons expect question, four options, correct answer, points and feedback. Kahoot's template wants question, four answers, a time limit and the correct answer as a number rather than a letter, and it silently substitutes 20 seconds if the time limit is not one of the six values it allows. Wayground's template runs to eleven columns and also takes the correct answer as a number, failing silently when it is wrong. Storyline 360 does not read CSV at all, only XLS, XLSX or TXT, and it uses nineteen type codes with an asterisk to mark the correct answer and a pipe to separate feedback.
So "export to CSV" is never a complete instruction. The useful question is always which tool's CSV, and the honest answer for most of them is that you will be remapping columns unless your export was built for that specific destination.
How do you choose between them?
- Start from where the score has to land. If a gradebook needs the result, the LMS decides the format and you have no choice to make.
- Canvas, Brightspace or Sakai: export QTI 1.2 as a zip, and import it into a question bank rather than a quiz.
- Blackboard: export the tab delimited .txt and use Upload Questions inside a test. It works in Original and Ultra, which QTI import does not.
- Moodle: export GIFT as UTF-8 text, and check the escaping before you upload.
- Google Forms or Microsoft Forms: use their route, a CSV through an add on for Google, a Word or PDF file through Quick Import for Microsoft. Note that Microsoft's Quick Import does not carry the answer key or the point values, so you set those by hand afterwards.
- Nothing digital needed: take the PDF. For a proctored room or a printed handout, a PDF with the questions numbered and the answer key on a separate page beats any import.
If you are generating the questions rather than migrating existing ones, this decision gets easier, because the format is chosen at download rather than baked into the file you were given. The quiz converter holds one reviewed question set and exports it as a QTI package, a GIFT file, a Forms ready CSV, a generic CSV or a PDF, so a course running in two systems only needs the questions written once. If instead you are moving a question bank that already exists between two platforms, that is a different purchase and a dedicated question converter does it for far less than any generator, which is worth knowing before you pay for the wrong kind of tool.
Three mistakes that account for most failed imports
Uploading a bare XML file to Canvas. QTI is a package. Zip the assessment XML together with an imsmanifest.xml or the importer has nothing to read. If your tool hands you a single .xml, it did not produce a QTI package.
Sending QTI to Moodle. Moodle core has no QTI importer and no CSV importer for questions. If a vendor says its QTI export works with Moodle, either it is assuming a third party plugin your administrator installed, or it is simply wrong. Check your own site under the import screen: the formats listed there are the formats you have.
Unescaped characters in GIFT. This one fails quietly, which makes it the most expensive. Run a search for =, ~, # and : inside your question text before importing, and escape each one with a backslash. Then read the Moodle import preview rather than clicking straight through it, because the preview is where a mangled question is still cheap to fix.
Does the explanation survive the conversion?
Usually yes, but not always in the same place. QTI and GIFT both have a native home for feedback, so an explanation attached to the correct answer travels intact into Canvas, Brightspace, Sakai and Moodle. Blackboard's tab delimited upload has no feedback column at all, so explanations do not survive that route. Google Forms carries it as a feedback column. Kahoot has nowhere to put it and drops it. Microsoft Forms loses the answer key as well as the feedback.
Timestamps are a different matter. If your questions were generated from a video and each one references the moment it came from, that reference has no standard field in QTI or GIFT. It survives in CSV and PDF exports, where it is just another column or a line under the question, and it is dropped by the LMS formats rather than forced into a field that would confuse the importer.
What about self hosted Moodle?
Nothing about the format changes, but the operational picture does. Moodle is free to download and someone still has to provision, patch and keep the server behind it running, which is the cost that surprises teams who chose it because the license was free. If that maintenance load is the reason your organization is looking at alternatives, the format question follows the platform: move to Canvas or Brightspace and you are exporting QTI from then on.
The short version
QTI for Canvas, Brightspace and Sakai, as a zip with a manifest. A tab delimited .txt for Blackboard, in either course view. GIFT for Moodle and Captivate Classic, as escaped UTF-8 text. CSV only where a specific tool has published the columns it wants. Choose from the destination, check the preview before you commit, and keep the question set somewhere you can re-export from when the destination changes.
If the questions do not exist yet, that is the more expensive half of the problem. Paste a YouTube link to a lecture capture, training session or webinar recording into the tool at the top of this page, or, for a recording held elsewhere, upload it with its transcript, and it writes the multiple choice questions, marks the answer key and adds an explanation to each one, then you pick the format your platform reads. For the platform by platform walkthrough rather than the format by format one, the LMS quiz generator covers each system in turn, and importing questions into Moodle goes through the GIFT route step by step.
Turn any video into a quiz
Paste a YouTube link (a lecture, training or webinar) and VidQuiz writes the questions for you, with answers and explanations. See how it works or explore use cases.