LogoLogo
  • LEARN
    • Overview
    • Capabilities
      • Rich and Diverse Assets
      • Organised Collections
      • Asset Lifecycle Management
      • Powerful Discovery
      • Phygital Discovery
      • Observability
    • Technical Architecture
    • Product & Developer Guide
      • Content Service
        • Content APIs
          • Features
          • Architecture
          • Code Structure
          • Schemas
          • APIs
          • Jobs
            • Content publish
            • Asset enrichment
            • Audit event generator
            • Video stream generator
          • FAQs
            • Upload Content
        • Media APIs
          • Features
          • Architecture
          • Schemas
          • APIs
          • Jobs
            • Asset enrichment
            • Audit event generator
          • FAQs
        • Channel APIs
          • Architecture
          • Schema
          • APIs
          • Configuration
          • FAQs
        • License APIs
          • Architecture
          • Schema
          • APIs
          • Configuration
          • FAQs
        • Collection APIs
          • Features
          • Architecture
          • Schemas
          • APIs
          • Jobs
            • Content publish
            • Post publish processor
            • Audit event generator
          • FAQs
      • Search Service
        • Architecture
        • Code Structure
          • Configuration
        • APIs
        • Jobs
          • Search indexer
          • Audit history indexer
        • FAQs
      • Taxonomy Service (Taxonomy & Tagging)
        • Framework APIs
          • Architecture
          • Code Structure
            • Configuration
          • Schemas
          • APIs
          • Jobs
            • Audit event generator
          • FAQs
            • Create Framework
            • Add Content to Framework
        • Object Category APIs
          • Architecture
          • Code Structure
          • Schemas
          • APIs
          • Jobs
            • Audit event generator
          • Configuration
          • FAQs
      • DIAL Service
        • Architecture
        • APIs
        • Jobs
        • Configuration
        • FAQs
          • Link DIAL Code to a Book
      • Player
        • V1
          • Features
          • Architecture
          • Players
            • ECML Player - v1
              • Quiz
              • Create Content
            • Video Player v1
            • Epub Player - v1
            • PDF Player - v1
            • HTML-h5p Player - v1
          • Content import and preview folder creation
          • FAQs
        • V2
          • PDF Player
            • Features
            • Architecture
            • Configuration
            • FAQ's
          • Epub Player
            • Features
            • Architecture
            • Configuration
            • FAQ's
          • Video Player
            • Features
            • Architecture
            • Configuration
            • FAQ's
        • Telemetry Events
          • Offline Telemetry
          • Generate API keys
      • Editors
        • Architecture
        • Interactive Editor
          • Features
            • Content Editor
            • Adding Question Set
            • Concept Selector
            • Add Image
            • Add Video
            • Adding Math Function
            • Limited Publishing and Sharing
        • File Upload Editor
          • Features
          • FAQ's
            • Content Upload
        • Collection Editor - V1
        • Collection Editor - V2
          • Features
          • Architecture
          • APIs
          • FAQ's
        • How to contribute as a JS plugin
          • How do I think about a plugin?
          • Interactive Editor Plugin Guide
          • Using SDK to create and test the plugin
      • Other Knowlg Jobs
        • Configuration
        • FAQs
      • Other
        • Data Migration
        • Schema strucure
    • Product Roadmap
  • ENGAGE
    • Discuss
    • Contribute to SB Knowlg
  • USE
    • Overview
    • System requirements
    • Installation guide
      • Players
        • V1
          • How to setup
        • V2
          • Epub Player
          • Video Player
          • Pdf Player
      • Editors
        • Interactive Editor
        • File Upload Editor
        • Collection Editor - V1
        • Collection Editor - V2
        • Plugins
      • Services
        • Content Service
          • Configuration
        • Search Service
        • Taxonomy Service (Taxonomy & Tagging)
        • DIAL Service
        • Knowlg Jobs
    • Deployment
    • Release notes
      • Release - 6.2.0 (Ongoing)
      • Release - 6.1.0 (latest)
      • Release - 6.0.0
      • Release - 5.7.0
      • Release - 5.6.0
      • Release - 5.5.0
      • Release - 5.4.0
      • Release - 5.3.0
      • Release - 5.2.0
      • Release - 5.1.0
      • Release - 5.0.0
      • Release - 4.10.0
      • Release - 4.8.0
    • Breaking Changes
    • Deprecations
      • Release-5.2.0
      • Release-5.1.0
    • Release
    • USE
      • Infra Requirements
    • Additional Reading
      • Content Service Environment Variables
      • Import External Content
  • Archived
    • Powerful Discovery
      • Usecase
      • Sample data
Powered by GitBook
On this page
  • Offline Play
  • Controlled Publishing
  • ECAR generation
  • Video Streaming
  • Source file storage
  • Content lifecycle management
  • Player compatibility
  • Version control
  • Extracting ECAR
  • Controlling access using visibility
  • Targeted audience
  • Organizing content based on channel
  • Organizing content by taxonomy
  • List of supported content mimeType
  • Copy content
  • DIAL code generation
  • Concurrent Modification
  • License

Was this helpful?

Edit on GitHub
  1. LEARN
  2. Product & Developer Guide
  3. Content Service
  4. Content APIs

Features

Content service is a micro-service which provides APIs to manage the lifecycle and workflows of creation and consumption of content.

Content service is a micro-service which provides APIs to manage the lifecycle and workflows of creation and consumption of content.

Offline Play

Enables offline consumption via generation of ECAR files in the packaging stage of the publish lifecycle. Contents can be download from downloadUrl. Two variants of the ECAR are available for each content. i.e. FULL and SPINE. ECAR can be downloaded and extracted in client (mobile and desktop) to play offline.

Controlled Publishing

Content publishing can be done in two ways: Public (status: Live) and Private (status: Unlisted). When the content status is Live, content is available for consumption publicly. When the content status is Unlisted, content can be accessed only by direct content link (deep link).

ECAR generation

ECAR is an archive file which contains metadata and artifact related to content. After generating the ECAR file, it's uploaded to the cloud and tagged the downloadUrl with the cloud path. ECAR generates the different variants - FULL, SPINE and ONLINE. All the variants URL are tagged in variants attribute.

  • FULL - It contains metadata and all the artifacts.

  • SPINE - It contains metadata and app icons.

  • ONLINE - It contains only metadata.

"downloadUrl": "<full ecar url>",
"variants": {
    "full": {
        "ecarUrl": "<full ecar url>",
        "size": "<size in byte>"
    },
    "spine": {
        "ecarUrl": "<spine ecar url>",
        "size": "<size in byte>"
    },
    "online": {
        "ecarUrl": "<online ecar url>",
        "size": "<size in byte>"
    }
}

Video Streaming

Source file storage

Source file of the uploaded content is stored in cloud. Source file URL is captured in artifactUrl attribute.

Content lifecycle management

Content can have the following status throughout the lifecycle:

Create (status: Draft)
Update (status: Draft)
Review (status: Review)
Reject (status: Draft)
Publish (status: Live/Unlisted)
Retired (status: Retired)
Failed (status: Failed)

Content having the status Retired can't be discovered for consumption/adoption.

Player compatibility

Player compatibility level of a content is stored in compatibilityLevel attribute. Based on the value, players can decide to play the content or show the incompatibility message.

Version control

Whenever publish the content pkgVersion bumpup by +1. Platform always maintains the latest version (Live and Draft) of the content. Old version of the content won't be available.

Extracting ECAR

Extracting ECAR based on contentEncoding and contentDisposition.

contentEncoding
contentDisposition
Behaviour

gzip

inline

Content artifact with zip file. e.g. ecml, html, h5p

identity

inline

Content artifact without zip file. e.g. pdf, webm

identity

online

Content without artifact

identity

online-only

mp4

Controlling access using visibility

Public, private and parent content (visibility: Default, Private, Parent) can be created. visibility: Parent, which can be discoverable only within a specific Collection.

Targeted audience

You can define the target audience e.g. Student, Teacher, Administrator, Parent.

Organizing content based on channel

Contents created within an organization tagged with channel. Content created by any organization can be consumed by other organization, this can be managed by createdFor attribute.

Organizing content by taxonomy

Contents can be tagged with framework and its category terms to categories it based on framework and enhance the search capabilities. To broaden the search criteria, it would be better to tag content with multiple framework and their category terms. With this, content can be available for different frameworks for consumption.

Contents created within an organisation framework can also be available for other frameworks. Contents can be tagged with multiple frameworks and their respective categories, so that while searching with different frameworks (framework within which content is not created), contents can be available.

List of supported content mimeType

"application/pdf",
"application/vnd.ekstep.ecml-archive",  
"application/vnd.ekstep.html-archive",  
"application/vnd.android.package-archive",  
"application/vnd.ekstep.content-archive", 
"application/epub", 
"application/msword",   
"application/vnd.ekstep.h5p-archive", 
"video/webm", 
"video/mp4"

Copy content

Platform supports deep and shallow copy. copyType attribute hold the value of copy type. When you copy a content, it is tagged with origin (URI of the source object) and originData (basic metadata of the source object).

  • Shallow copy: A collection can also be reused (adopted) by creating a shallow copy of the collection. When a shallow copy is created, the hierarchy of the original collection is not modifiable in the shallow copy. Only the metadata such as name, description, icon etc. of the shallow copy is modifiable. Any change to the hierarchy of the original collection automatically reflects in the shallow copy.

  • Deep copy: Deep copy makes the duplicate copy of the content. After that user can modify any metadata of the content.

A DIAL code is a unique code associated to a QR image. A DIAL code can be linked to any learning asset. However, sourcing solution currently enables generating DIAL codes for a collection and link them to the root as well as any node in its hierarchy.

DIAL codes can be generated and linked to a draft version of a collection.

Concurrent Modification

versionKey attribute is used for concurrent modification. When ever update happened, content tagged wit the updated version key.

License

Default licenses are available in systems listed below

"CC BY-NC-SA 4.0",
"CC BY-NC 4.0",
"CC BY-SA 4.0",
"CC BY 4.0",
"CC BY-ND 4.0",
"Standard YouTube License"
PreviousContent APIsNextArchitecture

Last updated 3 years ago

Was this helpful?

streamingUrl attribute captures the link of video streaming. For more details, refer to the job .

More detail can be found .

here
here
DIAL code generation