Opencast V3 Routes (3.29.0)

Download OpenAPI specification:

License: GPL v2

JSON Routes for Opencast V3

videos

Get the videos the session user has rights on

query Parameters
offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set

limit
integer >= 20
Default: 20

The numbers of items to return

Array of objects (Filter)

Pass some filters to narrow down the list of videos

Responses

Response samples

Content type
application/json
{
  • "count": 0,
  • "videos": [
    ]
}

Get Details for video with ID

path Parameters
token
required
string

ID of the video

Responses

Response samples

Content type
application/json
{
  • "video": {
    }
}

Update video with ID

path Parameters
token
required
string

ID of the video

Request Body schema: */*
required

Video object to be updated

id
integer
token
string <varchar(8)>

If not empty, this is the token for videos made accesible via secret link

config_id
integer

opencast config this video belongs to

episode
string

The id of the event in Opencast

title
string
description
string
duration
integer

video duration in milliseconds

views
integer

number of clicks for this video from Stud.IP

object
object
visibility
string
created
string <date-time>
presenters
string
contributors
string
chdate
integer
mkdate
integer
perm
boolean
courses
Array of strings
tags
Array of strings

Responses

Response samples

Content type
application/json
{ }

Delete video

Move video to trashbin or delete it from Stud.IP and Opencast completely if already trashed! This operation will completely remove a video if it is in the trashbin. It will remove the entry from Stud.IP and retract and delete the event completely in Opencast, so use with care!'

path Parameters
token
required
integer

ID of the video

Responses

Response samples

Content type
application/json
{ }

Restore video from trashbin

If the video is still in the trashbin, this operation will restore it

path Parameters
token
required
string

ID of the video

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Add video

Add a video to Stud.IP (used after upload an event to Opencast)

path Parameters
episode_id
required
string

UUID of the event in Opencast

Request Body schema: */*
required

Video object to be addedd

config_id
integer

opencast config this video belongs to

title
string
description
string
duration
integer

video duration in milliseconds

state
string
created
string <date-time>
presenters
string
contributors
string

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "event": {
    }
}

Send technical feedback

Sends a technical feedback for the video with the passed token to the configured OPENCAST_SUPPORT_EMAIL

path Parameters
token
required
string

ID of the video

Request Body schema: application/json
required

Video object to be updated

description
string

Responses

Request samples

Content type
application/json
{
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "message": "string"
}

Set playlist link

Set playlist links for the video with the passed token, clearing out all not passed playlist links.

path Parameters
token
required
string

ID of the video

Request Body schema: application/json
required

List of courses to link to

Array of objects

Responses

Request samples

Content type
application/json
{
  • "courses": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "string"
}

Set playlist link

Set playlist links for the video with the passed token, clearing out all not passed playlist links.

path Parameters
token
required
string

ID of the video

Responses

Response samples

Content type
application/json
{
  • "perms": {
    },
  • "shares": {
    }
}

Set playlist link

Set playlist links for the video with the passed token, clearing out all not passed playlist links.

path Parameters
token
required
string

ID of the video

Request Body schema: application/json
required

List of courses to link to

Array of objects

Responses

Request samples

Content type
application/json
{
  • "courses": [
    ]
}

Response samples

Content type
application/json
{
  • "perms": {
    },
  • "shares": {
    }
}

Toggle Worldwide sharing of video

This allows worldwide sharing (or revoking of it) for the video with the passed token. This will result in adding ROLE_ANONYMOUS for the event in Opencast

path Parameters
token
required
string

ID of the video

Request Body schema: application/json

The visibility to set

visibility
string
Enum: "internal" "public"

Responses

Request samples

Content type
application/json
{
  • "visibility": "internal"
}

Response samples

Content type
application/json
{
  • "message": "string"
}

courseware

Get all videos where the session user has onwer perms on

This is used to list all videos which can be included in the courseware by the session user. The difference to the /videos route is, that only videos the user has owner perms on are listed (and not simply read perms)

query Parameters
offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set

limit
integer >= 20
Default: 20

The numbers of items to return

Array of objects (Filter)

Pass some filters to narrow down the list of videos

Responses

Response samples

Content type
application/json
{
  • "count": 0,
  • "videos": [
    ]
}

playlists

Get the playlists for the session user

query Parameters
offset
integer >= 0
Default: 0

The number of items to skip before starting to collect the result set

limit
integer >= 20
Default: 20

The numbers of items to return

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add a new playlist for the current user

Request Body schema: */*
required

Playlist object to be added for the current user

title
required
string
description
string
visibility
string
Enum: "internal" "free" "public"
mkdate
string <date-time>
chdate
string <date-time>
Array of objects (PlaylistReference)

Responses

Response samples

Content type
application/json
{ }

Get the playlist with the passed id

path Parameters
token
required
string

ID of the playlist

Responses

Response samples

Content type
application/json
{ }

Update the playlist with the passed id

path Parameters
token
required
string

ID of the playlist

Request Body schema: */*
required

Playlist object to be updated

title
required
string
description
string
visibility
string
Enum: "internal" "free" "public"
mkdate
string <date-time>
chdate
string <date-time>
Array of objects (PlaylistReference)

Responses

Response samples

Content type
application/json
{ }

Delete the playlist with the passed id (if current user has permissions to do so)

path Parameters
token
required
string

ID of the playlist

Responses

Copy passed plaulist to target course

path Parameters
token
required
string

token reference for playlist

Request Body schema: application/json

Target course and playlist settings

course
string

Course-ID

is_default
boolean

Responses

Request samples

Content type
application/json
{
  • "course": "string",
  • "is_default": true
}

Response samples

Content type
application/json
{
  • "message": "string"
}

Get videos for the passed playlist

path Parameters
token
required
string

ID of the playlist

query Parameters
cid
string

Course ID as context for the playlist

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add video to playlist

path Parameters
token
required
string

token reference for playlist

Responses

Response samples

Content type
application/json
{ }

Delete video from playlist

path Parameters
token
required
string

token reference for playlist or video

Responses

Add user with perms to playlist

path Parameters
token
required
string

ID of the playlist

Request Body schema: application/x-www-form-urlencoded
required
username
required
string

User to add/modify perms for the playlist

perm
required
string
Enum: "owner" "write" "read" "share"

The perm the user shall have

Responses

Remove perms for user from playlist

path Parameters
token
required
string

ID of the playlist

username
required
string

Username of the user

Responses

Set order of videos

Set order of videos for the playlist with the passed token, giving each video a defined position

path Parameters
token
required
string

ID of the video

Request Body schema: application/json
required

List of courses to link to

Array
string

Responses

Request samples

Content type
application/json
[
  • "video_token_1",
  • "video_token_2"
]

Response samples

Content type
application/json
{
  • "message": "string"
}

courses-playlist

Get courses associated with the passed playlist

path Parameters
token
required
string

ID of the playlist

Responses

Response samples

Content type
application/json
{ }

Set course link

Set course links for the playlist with the passed token, clearing out all not passed course links

path Parameters
token
required
string

ID of the video

Request Body schema: application/json
required

List of courses to link to

Array of objects

Responses

Request samples

Content type
application/json
{
  • "courses": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "string"
}

Set the default playlist for the passed course and type of recording

path Parameters
token
required
string

ID of the playlist

course_id
required
string

ID of course

type
required
string
Enum: "livestreams" "scheduled"

Type of recording

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Returns playlists for this course. Videos without explicit playlist in this course are mapped to a virtual playlist which can be accessed via the standard playlist routes

path Parameters
course_id
required
string

ID of course

Responses

Response samples

Content type
application/json
{ }

Add playlist to course

path Parameters
token
required
string

ID of the playlist

course_id
required
string

ID of course

Request Body schema: application/json

Playlist settings

is_default
boolean

Responses

Request samples

Content type
application/json
{
  • "is_default": true
}

Update playlist in course

path Parameters
token
required
string

ID of the playlist

course_id
required
string

ID of course

Request Body schema: application/json

Playlist settings

title
required
string
description
string
visibility
string
Enum: "internal" "free" "public"
mkdate
string <date-time>
chdate
string <date-time>
Array of objects (PlaylistReference)
is_default
boolean

Responses

Request samples

Content type
application/json
{
  • "title": "Meine Videos",
  • "description": "string",
  • "visibility": "internal",
  • "mkdate": "2019-08-24T14:15:22Z",
  • "chdate": "2019-08-24T14:15:22Z",
  • "references": [
    ],
  • "is_default": true
}

Response samples

Content type
application/json
{
  • "title": "Meine Videos",
  • "description": "string",
  • "visibility": "internal",
  • "mkdate": "2019-08-24T14:15:22Z",
  • "chdate": "2019-08-24T14:15:22Z",
  • "references": [
    ]
}

Remove Playlist from course

path Parameters
token
required
string

ID of the playlist

course_id
required
string

ID of course

Responses

courses

returns a list of all courses the current user has tutor perms for or higher

Responses

Response samples

Content type
application/json
{
  • "S12345678": {
    }
}

Returns videos directly associated to this course

path Parameters
course_id
required
string

ID of course

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Returns the config settings for this course, like series and configured workflow

path Parameters
course_id
required
string

ID of course

Responses

Response samples

Content type
application/json
{
  • "series": {
    },
  • "workflow": "upload"
}

Get list of scheduled events for this course

path Parameters
course_id
required
string

ID of course

semester_filter
required
string

ID of the selected semester filter or 'all'

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "resource_id": "ddce269a1e3d054cae349621c198dd52",
  • "date_id": "ddce269a1e3d054cae349621c198dd52",
  • "event_id": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3454"
}

Toggle student-upload

Toggle if students can upload videos to this course. This route respects the setting OPENCAST_TUTOR_EPISODE_PERM, which toggles if tutor have the same rights in a course as lecturers

path Parameters
course_id
required
string

ID of course

upload
required
boolean

Shall upload for students be allowed in this course?

Responses

Configure default visibility for new videos

Configure the default visibility for videos in this course. Videos with modified visiblity are unaffected.

path Parameters
course_id
required
string

ID of course

Request Body schema: application/json

Visibility setting. default means using the global setting

visibility_option
string
Enum: "default" "visible" "hidden"

Responses

Request samples

Content type
application/json
{
  • "visibility_option": "default"
}

Get the courses from all videos the user has access to

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get all courses this playlist is connected to

path Parameters
token
required
string

ID of the playlist

Responses

Response samples

Content type
application/json
[
  • {
    }
]

tags

Get all available tags for this user

Responses

Response samples

Content type
application/json
[
  • "string"
]

Get the tags for all videos the user has access to, not only his own created ones

Responses

Response samples

Content type
application/json
[
  • "string"
]

Get the tags for all videos in passed playlist

path Parameters
token
required
string

ID of the playlist

Responses

Response samples

Content type
application/json
[
  • "string"
]

Get the tags for all videos in passed course

path Parameters
course_id
required
string

ID of course

Responses

Response samples

Content type
application/json
[
  • "string"
]

config

Get opencast configuration with all servers

Responses

Response samples

Content type
application/json
{
  • "server": { },
  • "settings": { },
  • "languages": { },
  • "can_migrate_playlists": true
}

Update global configuration settings

Request Body schema: application/x-www-form-urlencoded
required
required
Array of objects (ConfigSetting)
Array of objects (ConfigResource)
Array of objects (ConfigWorkflow)

Responses

Response samples

Content type
application/json
{
  • "messages": "string"
}

Get opencast configuration for server

path Parameters
config_id
required
integer

ID of the server config

Responses

Add or Update opencast configuration for server

path Parameters
config_id
required
integer

ID of the server config

Responses

Delete opencast configuration for server

path Parameters
config_id
required
integer

ID of the server config

Responses

Toggle activation for configured opencast server

path Parameters
id
required
integer

ID of the server config

activation
required
string
Enum: "activate" "deactivate"

Set activation state for opencast server

Responses

Response samples

Content type
application/json
{
  • "messages": "string"
}

Get the list of configured Opencast servers and the global config options, without any credentials or unsafe config options

Responses

Migrate playlists to Opencast

Responses

schedule

Get scheduled event

path Parameters
course_id
required
string

ID of course

termin_id
required
string

ID of scheduled event

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "resource_id": "ddce269a1e3d054cae349621c198dd52",
  • "date_id": "ddce269a1e3d054cae349621c198dd52",
  • "event_id": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3454"
}

Update a scheduled event

path Parameters
course_id
required
string

ID of course

termin_id
required
string

ID of scheduled event

Request Body schema: */*
required

Update an existing scheduled event

id
integer
resource_id
required
string
date_id
required
string
event_id
string

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "resource_id": "ddce269a1e3d054cae349621c198dd52",
  • "date_id": "ddce269a1e3d054cae349621c198dd52",
  • "event_id": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3454"
}

Add a new scheduled event

path Parameters
course_id
required
string

ID of course

termin_id
required
string

ID of scheduled event

Request Body schema: */*
required

ScheduledEvent object to be added, course is determined by date_id

id
integer
resource_id
required
string
date_id
required
string
event_id
string

Responses

Response samples

Content type
application/json
{ }

Delete a scheduled event

path Parameters
course_id
required
string

ID of course

termin_id
required
string

ID of scheduled event

Responses

Modify multiple scheduled events

Pass a bulk operation type and a list of events to apply the bulk operation to

path Parameters
course_id
required
string

ID of course

Request Body schema: application/json
required

Schedule events to bulk operate on

action
string
Enum: "schedule" "unschedule" "update" "live"
termin_ids
Array of strings

Responses

Request samples

Content type
application/json
{
  • "action": "schedule",
  • "termin_ids": [
    ]
}

Response samples

Content type
application/json
{ }

opencast

Get user and roles by user name

Returns the user with all necessary role ids

path Parameters
username
required
string

The name that needs to be fetched.

query Parameters
token
required
string

API Key to use for the call

Responses

Response samples

Content type
application/json
{
  • "username": "string",
  • "roles": [
    ]
}

user

Get currently loggend in user

Returns a data structur with details and permissions for the currently authenticated user

Responses

Response samples

Content type
application/json
{
  • "type": "user",
  • "id": "string",
  • "data": {
    }
}

Search for users

Search in users accessible to the currently authenticated user

path Parameters
search_term
required
string

Part of user data to search for

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Opencast series-id for user

Return the Opencast series-id for the currently logged in user

Responses

Response samples

Content type
application/json
[
  • {
    }
]