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:
| Feature | video | courseGroup |
|---|---|---|
| Structure | sections→lessons→topics | sections→lessons→topics |
| Primary Use | Video content | Any content |
| UI Optimization | Video-focused | General purpose |
| Topic Types | All supported | All 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
- Review other format examples:
- Explore Field Reference
- Learn about Get Course Structure