GET series/{seriesid}/latestornextepisode/mediaelement?inSuperUniverse={inSuperUniverse}

Returns information about the latest program for a series, or the next one if no latest.

Request Information

URI Parameters

NameDescriptionTypeAdditional information
seriesid

Series Id

string

Required

inSuperUniverse

Set this to true when accessing mediaelement for NRK Super. Will adjust script parameters to match super environment

boolean

Default value is False

Body Parameters

None.

Response Information

Resource Description

XML data. Prefix method with json to get JSON data

MediaElementVm
NameDescriptionTypeAdditional information
Id

The ID for the media element (PRF ID, Potion GUID, FOSS ID, Guri ID).

string

None.

Title

Lol ok title I have no idea what's in here. Is there any structure to it? Does it depend on the type of media element? (On-demand, klipp, kanal...) What about plug title?

string

None.

Description

*shrug*.

string

None.

MediaElementType

The value is probably and hopefully one of the following: Program, Live, Clip, Series, Episode or Unknown.

string

None.

MediaType

The value is probably and hopefully one of the following: video, audio or unknown.

string

None.

Image

I think this is really just the ImageInfo thing in the Images thing. It's not clear why we offer both.

ImageInfoVm

None.

Images

Wraps up all associated image things for this media element. I'm sorry, I can't be more precise.

CdnImageVm

None.

MediaUrl

This should be a valid URL to the manifest for the media stream for this media element. It's an "I feel lucky" shortcut to the URL in the MediaAssets list.

string

None.

MediaAssets

A list of "media assets" for this media element. It is a list because we have some "multi-part" programs (these obviously have one "media asset" per "part"). Usually this will be a list of one item.

Collection of MediaAssetVm

None.

BitrateInfo

*shrug*

BitrateInfoVm

None.

PlayerType

The value is usually but not always one of the following: flash, hls, hlslink, androidapp, w8app, altlivestraming, progressivedownload or Unknown. It could also be JWPlayer or null.

string

None.

FlashPlayerVersion

Returns a "hard-coded configuration value" for the flash player version. Current version at time of documentation is 1.13.000. Even if the documentation value isn't updated it hopefully tells you something about the structure of the value.

string

None.

FlashPluginVersion

Returns a "hard-coded configuration value" for the flash plugin version. Current version at time of documentation is 3.10. Even if the documentation value isn't updated it hopefully tells you something about the structure of the value.

string

None.

IsAvailable

Obviously indicates whether or not the media element is "available", but what does that mean? Does it mean the same for all kinds of media elements? What is the interpretation for live/events/clip/on-demand? Is usage rights taken into account?

boolean

None.

MessageType

The value is probably and hopefully one of the following: NoMessage, ProgramRightsAreNotReady, NoProgramRights, NoProgramRightsSuper, ProgramRightsHasNotStarted, ProgramRightsHasNotStartedSuper, ProgramRightsHasExpired, ProgramRightsHasExpiredSuper, ProgramIsGeoBlocked, ProgramIsGeoBlockedSuper, ProgramIsNotTranscoded, ChannelIsGeoBlocked, ChannelIsGeoBlockedNrk1, ChannelIsGeoBlockedNrk2, ChannelIsGeoBlockedNrk3, ChannelIsGeoBlockedNrkSuper, ChannelIsGeoBlockedNrkSuperSuper, ClipIsGeoBlocked, ClipRightsHasNotStarted, ClipRightsHasExpired, ProgramIsInLiveBuffer, NoFlashForMobile, EventHasNotStarted, EventIsFinished.

string

None.

MediaAnalytics

Statistics to report to Akamai (I think). (How? Why? Is there any documentation we can link to?)

MediaAnalyticsVm

None.

ScoresStatistics

Statistics to report to Scores. (How? Why? Is there any documentation we can link to?)

ScoresStatisticsVm

None.

ConvivaStatistics

Statistics to report to Conviva. (How? Why? Is there any documentation we can link to?)

ConvivaStatisticsVm

None.

MessageId

What is this? Is it in use? By which clients? For what purpose?

string

None.

IsLive

Indicates whether or not this media element is a live transmission.

boolean

None.

UsageRights

Usage rights for this media element. I'm afraid you'll need to check this and not allow a user access to the media asset if the usage rights aren't valid.

OnDemandUsageRightsVm

None.

AkamaiBeacon

This should be a valid URL to a AkamaiPlayerAnalyticsConfig xml file.

string

None.

LiveBufferStartTime

Only relevant for "live" media elements with a buffer. Indicates an offset into the live buffer where this media element begins, and hence where the client should start streaming (?) Presumably corresponds to media elements that have IsLive set to true(?)

date

None.

FullTitle

I don't know what characterizes "full title".

string

None.

MainTitle

I don't know what characterizes "main title".

string

None.

LegalAge

A code indicating the age limit for the media element. The code *should* correspond to the categories here: Hopefully you will only see one of the following values: A (free for all), 6, 9, 12, 15, 18 or the omnipresent null. Null could and probably should be interpreted as "not applicable".

string

None.

RelativeOriginUrl

Not quite sure what this is, why it's here and what it's used for.

string

None.

Duration

The duration of the media asset(s) (?) associated with this media element. We use the ISO-8601 format for duration, .

time interval

None.

ShortIndexPoints

A list of index points for this media element. Note that you'll need to match up the index points with the correct "part" for multi-part media elements.

Collection of ShortIndexPointVm

None.

HasSubtitles

Indicates whether or not we have subtitles for this media element. Presumably a value of true indicates that the property should hold a valid URL to a subtitle resource.

boolean

None.

SubtitlesDefaultOn

Indicates whether or not subtitles should be on by default.

boolean

None.

SubtitlesUrlPath

Should contain a valid URL to a subtitle resource if we have subtitles. Otherwise it should be null.

string

None.

SeriesId

If the media element is an episode belonging to a series, you should find the ID for the series here. This is the so-called "URL-friendly ID" for the series.

string

None.

SeriesTitle

If the media element is an episode belonging to a series, you should find the title of the series here.

string

None.

EpisodeNumberOrDate

For "sequential series" (such as Nobel, SKAM) this should contain a string on the format n:m, where n is the episode number and m is the total number of episodes in the season. For "repeating programs" (such as Dagsrevyen, Skavlan) this should contain a date on the format dd:mm:yyyy. For anything else, this should be null.

string

None.

ExternalEmbeddingAllowed

"Whether or not external embedding of this media element is allowed", obviously. But what does this mean exactly? What is external embedding?

boolean

None.

StartNextEpisode

For episodes in a series, the number of seconds before the end of this media element that a client might choose to minimize the player and show the preplay poster for the next episode. This effectively allows the client to skip the end sequence for the series, which is annoying for the user to watch when binging the series.

integer

None.

_links

Dictionary of string [key] and Object [value]

None.

_embedded

Dictionary of string [key] and Object [value]

None.

Response Formats

application/json, text/json

Sample:
{
  "_links": null,
  "id": "MSUB19120216",
  "title": "SKAM",
  "description": "- Jonas, dette er helt dust.",
  "mediaElementType": "Episode",
  "mediaType": "Video",
  "image": {
    "id": "6vVJ-pOjuhVhrnZ7fY29uQ",
    "cropInfo": {
      "x": 0.0,
      "y": 0.0,
      "width": 1.0,
      "height": 1.0
    }
  },
  "images": {
    "imageInfo": {
      "id": "6vVJ-pOjuhVhrnZ7fY29uQ",
      "cropInfo": {
        "x": 0.0,
        "y": 0.0,
        "width": 1.0,
        "height": 1.0
      }
    },
    "imageWidthCropInfo": "6vVJ-pOjuhVhrnZ7fY29uQ?x=0.00000000000000000&y=0.00000000000000000&w=1.00000000000000000&h=1.00000000000000000",
    "webImages": [
      {
        "imageUrl": "https://gfx.nrk.no/6vVJ-pOjuhVhrnZ7fY29uQgGY87PH-dVSgIuvpkcHqnA",
        "pixelWidth": 300
      },
      {
        "imageUrl": "https://gfx.nrk.no/6vVJ-pOjuhVhrnZ7fY29uQgGY87PH-dVSgIuvpkcHqnA",
        "pixelWidth": 600
      },
      {
        "imageUrl": "https://gfx.nrk.no/6vVJ-pOjuhVhrnZ7fY29uQgGY87PH-dVSgIuvpkcHqnA",
        "pixelWidth": 900
      },
      {
        "imageUrl": "https://gfx.nrk.no/6vVJ-pOjuhVhrnZ7fY29uQgGY87PH-dVSgIuvpkcHqnA",
        "pixelWidth": 1200
      }
    ],
    "isDefaultImage": false
  },
  "mediaUrl": "http://nordond5a-f.akamaihd.net/z/wo/open/b0/b0db32db0e735ffe227820f045cd1434df811ab2/8d153948-ab5d-4767-aaea-87186b80bcad_,141,316,563,1266,2250,.mp4.csmil/manifest.f4m",
  "mediaAssets": [
    {
      "url": "http://nordond5a-f.akamaihd.net/z/wo/open/b0/b0db32db0e735ffe227820f045cd1434df811ab2/8d153948-ab5d-4767-aaea-87186b80bcad_,141,316,563,1266,2250,.mp4.csmil/manifest.f4m",
      "duration": "PT16M36S",
      "carrierId": "MSUB19120216AW",
      "webVttSubtitlesUrl": "https%3a%2f%2fundertekst.nrk.no%2fprod%2fMSUB19%2f12%2fMSUB19120216AW%2fTMP%2fmaster.m3u8",
      "timedTextSubtitlesUrl": "https%3a%2f%2fundertekst.nrk.no%2fprod%2fMSUB19%2f12%2fMSUB19120216AW%2fTMP%2fMSUB19120216AW.ttml",
      "bufferDuration": null
    }
  ],
  "bitrateInfo": {
    "startIndex": 3,
    "maxIndex": 4
  },
  "playerType": "flash",
  "flashPlayerVersion": "1.13.000",
  "flashPluginVersion": "3.10",
  "isAvailable": true,
  "messageType": "NoMessage",
  "mediaAnalytics": {
    "show": "skam",
    "title": "skam",
    "category": "dramaserier",
    "contentLength": "15-20 min",
    "device": "desktop",
    "playerId": "flash",
    "deliveryType": "O",
    "cdnName": "Akamai",
    "playerInfo": "desktop"
  },
  "scoresStatistics": {
    "springStreamSite": "nrkstream",
    "springStreamStream": "programspiller/odm/drama-serier/skam/s01e02.skam.MSUB19120216",
    "springStreamContentType": "desktop",
    "springStreamProgramId": "MSUB19120216"
  },
  "convivaStatistics": {
    "assetName": "MSUB19120216-skam-2-11",
    "cdnName": "AKAMAI",
    "deviceType": "PC",
    "playerName": "NRK FLASH",
    "isLive": false,
    "playerVersion": "Pakke74",
    "contentType": "N/A",
    "contentId": "MSUB19120216",
    "episodeName": "2:11",
    "seriesName": "SKAM",
    "contentLength": 996
  },
  "messageId": null,
  "isLive": false,
  "usageRights": {
    "isGeoBlocked": true,
    "availableFrom": "2015-05-24T22:00:00+00:00",
    "availableTo": "9999-12-30T23:00:00+00:00",
    "hasRightsNow": false
  },
  "akamaiBeacon": "https://ma93-r.analytics.edgekey.net/config/beacon-9484.xml",
  "liveBufferStartTime": null,
  "fullTitle": "SKAM 2:11",
  "mainTitle": "SKAM",
  "legalAge": "12",
  "relativeOriginUrl": "serie/skam/MSUB19120216/sesong-1/episode-2",
  "duration": "PT16M36S",
  "shortIndexPoints": [],
  "hasSubtitles": true,
  "subtitlesDefaultOn": false,
  "subtitlesUrlPath": "https://undertekst.nrk.no/prod/MSUB19/12/MSUB19120216AW/TMP/MSUB19120216AW.ttml",
  "seriesId": "skam",
  "seriesTitle": "SKAM",
  "episodeNumberOrDate": "2:11",
  "externalEmbeddingAllowed": true,
  "startNextEpisode": 10
}