Skip to main content

video Example

This example demonstrates creating video-based learning content using the video kind.

What is a video Course?

The video kind is optimized for video-based learning. It uses the same structure as courseGroup but is specifically designed for video content delivery.

Basic Video Course

Create a simple video course:

curl -X POST "https://{your-instance-url}/incoming/v2/content/course/create" \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-d '{
"courseAttributes": [
{
"title": "Introduction to Cloud Computing",
"kind": "video",
"availableToPublic": true,
"sections": [
{
"title": "Main Content",
"lessons": [
{
"title": "Cloud Computing Basics",
"openType": "studentsOnly",
"topics": [
{
"title": "What is Cloud Computing?",
"type": "video",
"body": "<p>Learn the fundamentals of cloud computing in this comprehensive video.</p>"
}
]
}
]
}
]
}
]
}'

Note: Video files are uploaded separately through the admin UI and associated with video topics.

Response Example

["video_ghi789"]

Video Course with Multiple Lessons

Create a course with multiple video lessons:

{
"courseAttributes": [
{
"title": "Python Programming Masterclass",
"kind": "video",
"availableToPublic": true,
"enrollmentStartDate": "2024-01-01T00:00:00Z",
"sections": [
{
"title": "Python Basics",
"lessons": [
{
"title": "Introduction to Python",
"openType": "studentsOnly",
"topics": [
{
"title": "Getting Started",
"type": "video",
"body": "<p>In this video, you'll learn Python basics including variables, data types, and operators.</p>",
"preTextBlock": "<p><strong>Duration:</strong> 45 minutes</p><p><strong>Prerequisites:</strong> None</p>"
}
]
},
{
"title": "Python Data Types",
"openType": "studentsOnly",
"topics": [
{
"title": "Working with Data",
"type": "video",
"body": "<p>Learn about strings, numbers, lists, and dictionaries.</p>"
}
]
}
]
},
{
"title": "Advanced Topics",
"releaseDate": "2024-02-01T00:00:00Z",
"lessons": [
{
"title": "Object-Oriented Programming",
"openType": "studentsOnly",
"topics": [
{
"title": "Classes and Objects",
"type": "video",
"body": "<p>Master OOP concepts in Python.</p>"
}
]
}
]
}
]
}
]
}

Video with Supporting Materials

Include text content alongside videos:

{
"courseAttributes": [
{
"title": "Marketing Strategy Course",
"kind": "video",
"availableToPublic": false,
"sections": [
{
"title": "Week 1",
"lessons": [
{
"title": "Marketing Fundamentals",
"openType": "studentsOnly",
"topics": [
{
"title": "Introduction Video",
"type": "video",
"body": "<p>Watch this 20-minute introduction to marketing strategy.</p>"
},
{
"title": "Key Concepts",
"type": "text",
"body": "<h2>Important Terms</h2><ul><li>Target Market</li><li>Value Proposition</li><li>Market Segmentation</li></ul>"
},
{
"title": "Quiz",
"type": "quiz",
"body": "<p>Test your understanding of the video content.</p>"
}
]
}
]
}
]
}
]
}

Video with Transcripts

Include text transcripts alongside video:

{
"courseAttributes": [
{
"title": "Accessibility Training",
"kind": "video",
"availableToPublic": true,
"sections": [
{
"title": "Training Videos",
"lessons": [
{
"title": "Introduction to Accessibility",
"openType": "studentsOnly",
"topics": [
{
"title": "Training Video",
"type": "video",
"body": "<p>Watch this important training on accessibility best practices.</p>"
},
{
"title": "Video Transcript",
"type": "text",
"body": "<h2>Transcript</h2><p><strong>[00:00]</strong> Welcome to accessibility training...</p><p><strong>[01:30]</strong> First, let's discuss...</p>",
"caption": "Full transcript of the training video"
}
]
}
]
}
]
}
]
}

Video Course with PDF Resources

Include downloadable resources:

{
"courseAttributes": [
{
"title": "Product Demo Series",
"kind": "video",
"availableToPublic": false,
"sections": [
{
"title": "Feature Demonstrations",
"lessons": [
{
"title": "Advanced Features",
"openType": "studentsOnly",
"topics": [
{
"title": "Feature Demo Video",
"type": "video",
"body": "<p>Watch this detailed feature walkthrough.</p>",
"postTextBlock": "<p>Download the PDF guide below for step-by-step instructions.</p>"
},
{
"title": "Feature Guide",
"type": "pdfViewer",
"pdfUrl": "https://cdn.example.com/feature-guide.pdf",
"caption": "Step-by-step guide (PDF)",
"fileDownloadDisabled": false
}
]
}
]
}
]
}
]
}

Use Cases

Training Videos

Perfect for:

  • Product demonstrations
  • Software tutorials
  • Process walkthroughs
  • How-to guides

Educational Content

Ideal for:

  • Online courses
  • Lecture recordings
  • Workshop recordings
  • Expert interviews

Marketing

Great for:

  • Product demos
  • Customer testimonials
  • Case study videos
  • Explainer videos

Internal Training

Excellent for:

  • Company announcements
  • Training sessions
  • Team updates
  • Onboarding videos

Best Practices

1. Structure Content Logically

{
"sections": [
{
"title": "Introduction",
"lessons": [...]
},
{
"title": "Core Content",
"lessons": [...]
},
{
"title": "Advanced Topics",
"lessons": [...]
}
]
}

2. Provide Context

Use body, preTextBlock, and postTextBlock to:

  • Explain what learners will see
  • List prerequisites
  • Provide timestamps
  • Include key takeaways
{
"preTextBlock": "<p><strong>Duration:</strong> 30 min | <strong>Level:</strong> Beginner</p>",
"body": "<p>In this video, you'll learn...</p>",
"postTextBlock": "<p><strong>Key Takeaways:</strong> Always validate user input.</p>"
}

3. Include Supplementary Materials

  • Text summaries
  • Transcripts for accessibility
  • PDF downloads
  • Quiz checkpoints

4. Use Release Dates

Drip content over time:

{
"sections": [
{
"title": "Week 1",
"releaseDate": "2024-01-15T00:00:00Z"
},
{
"title": "Week 2",
"releaseDate": "2024-01-22T00:00:00Z"
}
]
}

5. Set Appropriate Dates

{
"enrollmentStartDate": "2024-01-01T00:00:00Z",
"courseStartDate": "2024-01-15T00:00:00Z",
"courseEndDate": "2024-06-15T23:59:59Z"
}

Video Topic Structure

While video files are uploaded separately, you define the structure via API:

{
"title": "Video Title",
"type": "video",
"body": "<p>Video description and context</p>",
"preTextBlock": "<p>Watch this before starting...</p>",
"postTextBlock": "<p>Now that you've watched...</p>"
}

Supported Video Types

Video topics support:

  • MP4 (recommended)
  • WebM
  • OGG
  • MOV

Videos are uploaded through the admin UI after course creation.

Video vs courseGroup

The video kind is essentially a courseGroup optimized for video content:

FeaturevideocourseGroup
Structuresections→lessons→topicssections→lessons→topics
Primary UseVideo contentAny content
UI OptimizationVideo-focusedGeneral purpose
Topic TypesAll supportedAll supported

Use video when:

  • Content is primarily video-based
  • Want video-optimized UI
  • Building video courses or tutorials

Use courseGroup when:

  • Mixed content types
  • Non-video primary content
  • Need general-purpose course

Common Errors

Missing Structure

{
"error": "Video courses require sections, lessons, and topics"
}

Solution: Provide complete structure like courseGroup.

Invalid Topic Type

{
"error": "Invalid topic type for video course"
}

Solution: Use valid TopicType values (video, text, quiz, etc.).

Next Steps