Catalog

Contents

Catalog#

Models#

class nrk_psapi.models.catalog.Date[source]#

Bases: BaseDataClassORJSONMixin

Represents a date with its value and display format.

date: datetime#
display_value: str#
class nrk_psapi.models.catalog.GeoBlock[source]#

Bases: BaseDataClassORJSONMixin

Represents geographical blocking information.

is_geo_blocked: bool#
display_value: str#
class nrk_psapi.models.catalog.UsageRights[source]#

Bases: BaseDataClassORJSONMixin

Contains information about usage rights and availability.

_from: Date#
to: Date#
geo_block: GeoBlock#
class nrk_psapi.models.catalog.Availability[source]#

Bases: BaseDataClassORJSONMixin

Represents the Availability of a Program based on the active usage rights.

status: AvailabilityStatus#
has_label: bool#

Label should only be displayed if HasLabel is true.

label: str | None = None#

Label to be showed to the user based on the AvailabilityStatus.

class nrk_psapi.models.catalog.Category[source]#

Bases: BaseDataClassORJSONMixin

Represents a category with its ID and name.

id: str#
name: str | None = None#
display_value: str | None = None#
class nrk_psapi.models.catalog.Titles[source]#

Bases: BaseDataClassORJSONMixin

Contains title information.

title: str#
subtitle: str | None = None#
class nrk_psapi.models.catalog.DefaultTitles[source]#

Bases: BaseDataClassORJSONMixin

Contains default title information.

main_title: str#

The main title of the episode.

subtitle: str | None = None#

The subtitle of the episode.

class nrk_psapi.models.catalog.TemporalTitles[source]#

Bases: BaseDataClassORJSONMixin

Contains temporal title information.

titles: list[str]#
default_titles: DefaultTitles#
class nrk_psapi.models.catalog.EpisodeContext[source]#

Bases: BaseDataClassORJSONMixin

Contains episode context information.

type: PodcastType#
class nrk_psapi.models.catalog.Episode[source]#

Bases: BaseDataClassORJSONMixin

Represents a podcast episode.

id: str#

The episode ID.

type: EpisodeType#

The type of the episode.

episode_id: str#

The episode ID.

titles: Titles#

The titles of the episode.

duration: timedelta#

The duration of the episode.

date: datetime#

The date of the episode.

usage_rights: UsageRights#

The usage rights of the episode.

availability: Availability#

The availability of the episode.

program_information: ProgramInformation | None = None#

The program information of the episode.

image: list[Image] | None = None#

The images of the episode.

square_image: list[Image] | None = None#

The square images of the episode.

category: Category | None = None#

The category of the episode.

badges: list | None = None#

The badges of the episode.

duration_in_seconds: int | None = None#

The duration of the episode in seconds.

clip_id: str | None = None#

The clip ID of the episode.

original_title: str | None = None#

The original title of the episode.

production_year: int | None = None#

The production year of the episode.

index_points: list[IndexPoint] | None = None#

The index points of the episode.

contributors: list[Contributor] | None = None#

The contributors of the episode.

property season_id#
property season_title#
class nrk_psapi.models.catalog.SeasonBase[source]#

Bases: BaseDataClassORJSONMixin

Base class for a podcast season.

titles: Titles#
has_available_episodes: bool#
episode_count: int#
image: list[Image]#
class nrk_psapi.models.catalog.SeasonEmbedded[source]#

Bases: SeasonBase

Represents an embedded podcast season.

id: str#
episodes: list[Episode] | None = None#
titles: Titles#
has_available_episodes: bool#
episode_count: int#
image: list[Image]#
class nrk_psapi.models.catalog.Season[source]#

Bases: SeasonBase

Represents a podcast season.

series_type: SeriesType#
type: PodcastType#
episodes: list[Episode]#
name: str | None = None#
category: Category | None = None#
id: str | None = None#
series_id: str | None = None#
podcast_id: str | None = None#
square_image: list[Image] | None = None#
backdrop_image: list[Image] | None = None#
titles: Titles#
has_available_episodes: bool#
episode_count: int#
image: list[Image]#
class nrk_psapi.models.catalog.EpisodesResponse[source]#

Bases: BaseDataClassORJSONMixin

Contains a list of embedded episodes.

episodes: list[Episode]#
series_type: SeriesType | None = None#
class nrk_psapi.models.catalog.PodcastSeries[source]#

Bases: BaseDataClassORJSONMixin

Represents a podcast series.

id: str#
title: str#
titles: Titles#
category: Category#
image: list[Image]#
square_image: list[Image] | None = None#
backdrop_image: list[Image] | None = None#
poster_image: list[Image] | None = None#
highlighted_episode: str | None = None#
next_episode: Date | None = None#
class nrk_psapi.models.catalog.Podcast[source]#

Bases: BaseDataClassORJSONMixin

Represents the main structure of the API response.

type: PodcastType#
series_type: SeriesType#
season_display_type: SeasonDisplayType#
series: PodcastSeries#
class nrk_psapi.models.catalog.PodcastStandard[source]#

Bases: Podcast

Represents a standard podcast.

seriesType = 'standard'#
episodes: list[Episode]#
seasons: list[SeasonLink]#
type: PodcastType#
series_type: SeriesType#
season_display_type: SeasonDisplayType#
series: PodcastSeries#
class nrk_psapi.models.catalog.PodcastUmbrella[source]#

Bases: Podcast

Represents an umbrella podcast.

seriesType = 'umbrella'#
seasons: list[SeasonEmbedded]#
episodes: list[Episode]#
type: PodcastType#
series_type: SeriesType#
season_display_type: SeasonDisplayType#
series: PodcastSeries#
class nrk_psapi.models.catalog.PodcastSequential[source]#

Bases: Podcast

Represents a sequential podcast.

seriesType = 'sequential'#
seasons: list[SeasonEmbedded]#
type: PodcastType#
series_type: SeriesType#
season_display_type: SeasonDisplayType#
series: PodcastSeries#

Bases: BaseDataClassORJSONMixin

Represents a season link in the API response.

id: str | None = None#
href: str | None = None#
name: str | None = None#
title: str | None = None#
series_type: SeriesType | None = None#

Bases: BaseDataClassORJSONMixin

Represents a hyperlink in the API response.

href: str#
name: str | None = None#
title: str | None = None#
templated: bool | None = None#

Bases: BaseDataClassORJSONMixin

Contains all the hyperlinks in the API response.

self: Link | None = None#
manifests: list[Link] | None = None#
next: Link | None = None#
playback: Link | None = None#
series: Link | None = None#
season: SeasonLink | None = None#
seasons: list[Link] | None = None#
custom_season: Link | None = None#
podcast: Link | None = None#
favourite: Link | None = None#
share: Link | None = None#
progress: Link | None = None#
progresses: list[Link] | None = None#
recommendations: Link | None = None#
extra_material: Link | None = None#
personalized_next: Link | None = None#
user_data: Link | None = None#
episodes: Link | None = None#
highlighted_episode: Link | None = None#
class nrk_psapi.models.catalog.ProgramInformationDetails[source]#

Bases: BaseDataClassORJSONMixin

Contains program information details.

display_value: str#
accessibility_value: str#
class nrk_psapi.models.catalog.ProgramInformation[source]#

Bases: BaseDataClassORJSONMixin

Contains program information.

details: ProgramInformationDetails#
original_title: str | None = None#
class nrk_psapi.models.catalog.Contributor[source]#

Bases: BaseDataClassORJSONMixin

Represents a contributor to the episode.

role: str#
name: list[str]#
class nrk_psapi.models.catalog.WebImage[source]#

Bases: BaseDataClassORJSONMixin

Wrapper around Image.

id: str#
web_images: list[Image]#
class nrk_psapi.models.catalog.Image[source]#

Bases: BaseDataClassORJSONMixin

Represents an image with its URL and width.

url: str#
width: int | None = None#
pixel_width: int | None = None#
class nrk_psapi.models.catalog.Duration[source]#

Bases: BaseDataClassORJSONMixin

Represents the duration of the episode in various formats.

seconds: int#
iso8601: timedelta#
display_value: str#
class nrk_psapi.models.catalog.IndexPoint[source]#

Bases: BaseDataClassORJSONMixin

Represents a point of interest within the episode.

title: str#
start_point: timedelta#
description: str | None = None#
part_id: int | None = None#
mentioned: list[str] | None = None#
subject_list: list[str] | None = None#
contributors: list[Contributor] | None = None#
class nrk_psapi.models.catalog.PlaylistItem[source]#

Bases: BaseDataClassORJSONMixin

Represents a playlist item in the playlist.

title: str#
type: str#
description: str#
program_id: str#
channel_id: str#
start_time: datetime#
duration: timedelta#
program_title: str#
start_point: timedelta#
class nrk_psapi.models.catalog.PlaylistMusicItem[source]#

Bases: PlaylistItem

Represents a music playlist item in the playlist.

type: str = 'Music'#
title: str#
description: str#
program_id: str#
channel_id: str#
start_time: datetime#
duration: timedelta#
program_title: str#
start_point: timedelta#
class nrk_psapi.models.catalog.Series[source]#

Bases: BaseDataClassORJSONMixin

Represents a series object.

id: str#

The ID of the series.

series_id: str#

The ID of the series.

title: str#

The title of the series.

type: PodcastType#

The type of the series.

images: list[Image]#

The images of the series.

square_images: list[Image]#

The square images of the series.

season_id: str | None = None#

The ID of the season.

class nrk_psapi.models.catalog.Program[source]#

Bases: BaseDataClassORJSONMixin

Represents a program object.

id: str#
episode_id: str#
date: datetime#
program_information: ProgramInformation#
contributors: list[Contributor]#
image: list[Image]#
temporal_titles: TemporalTitles#
availability: Availability#
category: Category#
usage_rights: UsageRights#
production_year: int#
duration: Duration#
index_points: list[IndexPoint]#
playlist: list[PlaylistItem]#

Enums#

enum nrk_psapi.models.catalog.AvailabilityStatus(value)[source]#

Bases: StrEnum

Member Type:

str

Valid values are as follows:

COMING = <AvailabilityStatus.COMING: 'coming'>#
AVAILABLE = <AvailabilityStatus.AVAILABLE: 'available'>#
EXPIRES = <AvailabilityStatus.EXPIRES: 'expires'>#
EXPIRED = <AvailabilityStatus.EXPIRED: 'expired'>#
NOT_AVAILABLE_ONLINE = <AvailabilityStatus.NOT_AVAILABLE_ONLINE: 'notAvailableOnline'>#
enum nrk_psapi.models.catalog.EpisodeType(value)[source]#

Bases: StrEnum

Member Type:

str

Valid values are as follows:

PODCAST_EPISODE = <EpisodeType.PODCAST_EPISODE: 'podcast_episode'>#
PROGRAM = <EpisodeType.PROGRAM: 'program'>#
enum nrk_psapi.models.catalog.PodcastType(value)[source]#

Bases: StrEnum

Member Type:

str

Valid values are as follows:

PODCAST = <PodcastType.PODCAST: 'podcast'>#
CUSTOM_SEASON = <PodcastType.CUSTOM_SEASON: 'customSeason'>#
SERIES = <PodcastType.SERIES: 'series'>#
enum nrk_psapi.models.catalog.SeasonDisplayType(value)[source]#

Bases: StrEnum

Member Type:

str

Valid values are as follows:

MANUAL = <SeasonDisplayType.MANUAL: 'manual'>#
NUMBER = <SeasonDisplayType.NUMBER: 'number'>#
MONTH = <SeasonDisplayType.MONTH: 'month'>#
YEAR = <SeasonDisplayType.YEAR: 'year'>#
enum nrk_psapi.models.catalog.SeriesType(value)[source]#

Bases: StrEnum

Member Type:

str

Valid values are as follows:

SEQUENTIAL = <SeriesType.SEQUENTIAL: 'sequential'>#
NEWS = <SeriesType.NEWS: 'news'>#
STANDARD = <SeriesType.STANDARD: 'standard'>#
UMBRELLA = <SeriesType.UMBRELLA: 'umbrella'>#