Models

Contents

Models#

podme_api models.

class podme_api.models.BaseDataClassORJSONMixin[source]#

Bases: DataClassORJSONMixin

BaseDataClassORJSONMixin()

enum podme_api.models.PodMeModels(value)[source]#

Bases: StrEnum

Enumeration of utilized PodMe models.

Member Type:

str

Valid values are as follows:

CATEGORY = <PodMeModels.CATEGORY: 'category'>#
PODCAST = <PodMeModels.PODCAST: 'podcast'>#
EPISODE = <PodMeModels.EPISODE: 'episode'>#
SEARCH_RESULT = <PodMeModels.SEARCH_RESULT: 'search_result'>#
EPISODE_EXCERPT = <PodMeModels.EPISODE_EXCERPT: 'episode_excerpt'>#
SUBSCRIPTION_PLAN = <PodMeModels.SUBSCRIPTION_PLAN: 'subscription_plan'>#
SUBSCRIPTION = <PodMeModels.SUBSCRIPTION: 'subscription'>#
enum podme_api.models.PodMeLanguage(value)[source]#

Bases: StrEnum

Enumeration of supported PodMe languages.

Member Type:

str

Valid values are as follows:

SE = se#
NO = no#
FI = fi#
enum podme_api.models.PodMeRegion(value)[source]#

Bases: IntEnum

Enumeration of PodMe regions.

Member Type:

int

Valid values are as follows:

SE = SE#
NO = NO#
FI = FI#

The Enum and its members also have the following methods:

property default_language#

Get the default language for the region.

enum podme_api.models.PodMeDownloadProgressTask(value)[source]#

Bases: StrEnum

Enumeration of PodMe download progress tasks.

Member Type:

str

Valid values are as follows:

INITIALIZE = <PodMeDownloadProgressTask.INITIALIZE: 'initialize'>#
RESOLVE_URL = <PodMeDownloadProgressTask.RESOLVE_URL: 'resolve_url'>#
DOWNLOAD_FILE = <PodMeDownloadProgressTask.DOWNLOAD_FILE: 'download_file'>#
TRANSCODE_FILE = <PodMeDownloadProgressTask.TRANSCODE_FILE: 'transcode_file'>#
COMPLETE = <PodMeDownloadProgressTask.COMPLETE: 'complete'>#
class podme_api.models.PodMeCategory[source]#

Bases: BaseDataClassORJSONMixin

Represents a PodMe category.

id: int#
name: str#
key: str#
image_url: str | None = None#
class podme_api.models.PodMeCategoryPageSectionContent[source]#

Bases: BaseDataClassORJSONMixin

Base class for PodMe category page section content.

title: str#
type: str#
class podme_api.models.PodMeCategoryPagePodcastCarousel[source]#

Bases: PodMeCategoryPageSectionContent

Represents a podcast carousel in a PodMe category page section.

type: str = 'podcastCarousel'#
podcasts: list[PodMeHomeSectionPodcast]#
is_top_list: bool | None = None#
show_release_date: bool | None = None#
destination: str | None = None#
title: str#
class podme_api.models.PodMeCategoryPagePodcastPromoCarousel[source]#

Bases: PodMeCategoryPageSectionContent

Represents a podcast promo carousel in a PodMe category page section.

type: str = 'podcastPromoCarousel'#
promoted_podcasts: list[PodMeHomeSectionPodcast]#
is_top_list: bool | None = None#
title: str#
class podme_api.models.PodMeCategoryPageEpisodePromoCarousel[source]#

Bases: PodMeCategoryPageSectionContent

Represents an episode promo carousel in a PodMe category page section.

type: str = 'episodePromoCarousel'#
promoted_episodes: list[PodMeHomeSectionEpisode]#
is_top_list: bool | None = None#
title: str#
class podme_api.models.PodMeCategoryPageBannerWithEpisodeList[source]#

Bases: PodMeCategoryPageSectionContent

Represents a banner with episode list in a PodMe category page section.

type: str = 'bannerWithEpisodeList'#
description: str#
hide_title: bool#
image_url: str#
episodes: list[PodMeHomeSectionEpisode]#
title: str#
class podme_api.models.PodMeHomeEpisodeList[source]#

Bases: BaseDataClassORJSONMixin

Represents a list of episodes in the PodMe home screen.

title: str#
type: str#
episodes: list[PodMeHomeSectionEpisode]#
class podme_api.models.PodMeHomeSectionHeroCard[source]#

Bases: BaseDataClassORJSONMixin

Base class for PodMe home section hero cards.

type: str#
class podme_api.models.PodMeHomeSectionEpisodeHeroCard[source]#

Bases: PodMeHomeSectionHeroCard

Represents an episode hero card in a PodMe home section.

type: str = 'episode'#
podcast_id: int#
has_podcast_bookmark: bool#
episode_data: PodMeEpisodeData#
is_playable: bool#
image_url: str#
destination: str#
destination_path: str#
main_header: str#
short_description: str#
sub_header: str | None = None#
class podme_api.models.PodMeCategoryPagePodcastNuggets[source]#

Bases: PodMeCategoryPageSectionContent

Represents podcast nuggets in a PodMe category page section.

type: str = 'podcastNuggets'#
subtitle: str#
episode_lists: list[PodMeHomeEpisodeList]#
title: str#
class podme_api.models.PodMeCategoryPageEpisodeCarousel[source]#

Bases: PodMeCategoryPageSectionContent

Represents an episode carousel in a PodMe category page section.

type: str = 'episodeCarousel'#
episodes: list[PodMeHomeSectionEpisode]#
title: str#
class podme_api.models.PodMeSectionHeroCards[source]#

Bases: PodMeCategoryPageSectionContent

Represents a list of hero cards in a PodMe section.

type: str = 'listOfHeroCards'#
hero_cards: list[PodMeHomeSectionHeroCard]#
title: str#
class podme_api.models.PodMeCategoryPageSection[source]#

Bases: BaseDataClassORJSONMixin

Represents a section in a PodMe category page.

content: PodMeCategoryPageSectionContent#
class podme_api.models.PodMeHomeScreen[source]#

Bases: BaseDataClassORJSONMixin

Represents the PodMe home screen.

sections: list[PodMeCategoryPageSection]#
type: str#
class podme_api.models.PodMeCategoryPage[source]#

Bases: PodMeHomeScreen

Represents a PodMe category page.

title: str#
display_title: str#
description: str#
sections: list[PodMeCategoryPageSection]#
type: str#
class podme_api.models.PodMePodcastBase[source]#

Bases: BaseDataClassORJSONMixin

Base class for PodMe podcasts.

id: int#
title: str#
is_premium: bool#
slug: str#
image_url: str | None = None#
class podme_api.models.PodMePodcast[source]#

Bases: PodMePodcastBase

Represents a PodMe podcast with extended information.

small_image_url: str | None = None#
medium_image_url: str | None = None#
large_image_url: str | None = None#
author_id: int | None = None#
author_full_name: str | None = None#
has_bookmark: bool | None = None#
has_subscription: bool | None = None#
has_free_options: bool | None = None#
has_buy_options: bool | None = None#
is_in_spotlight: bool | None = None#
categories: list[PodMeCategory] | None = None#
subscription_type: int | None = None#
description: str | None = None#
only_as_package_subscription: bool | None = None#
only_as_podcast_subscription: bool | None = None#
requires_importing: bool | None = None#
image_url: str | None = None#
id: int#
title: str#
is_premium: bool#
slug: str#
class podme_api.models.PodMeHomeSectionPodcast[source]#

Bases: PodMePodcastBase

Represents a podcast in a PodMe home section.

destination: str | None = None#
destination_path: str | None = None#
description: str | None = None#
categories: list[PodMeCategory] | None = None#
image_url: str | None = None#
id: int#
title: str#
is_premium: bool#
slug: str#
class podme_api.models.PodMeHomeSection[source]#

Bases: BaseDataClassORJSONMixin

Represents a section in the PodMe home screen.

title: str#
podcasts: list[PodMeHomeSectionPodcast]#
class podme_api.models.PodMeSearchResult[source]#

Bases: BaseDataClassORJSONMixin

Represents a search result in PodMe.

podcast_id: int | str#
podcast_title: str#
image_url: str#
author_full_name: str#
date_added: datetime#
slug: str#
is_premium: bool#
types: list | None = None#
class podme_api.models.PodMeEpisodeBase[source]#

Bases: BaseDataClassORJSONMixin

Base class for PodMe episodes.

id: int#
podcast_id: int#
title: str#
podcast_title: str#
length: time#
description: str | None = None#
html_description: str | None = None#
image_url: str | None = None#
date_added: datetime#
is_premium: bool#
class podme_api.models.PodMeHomeSectionEpisode[source]#

Bases: PodMeEpisodeBase

Represents an episode in a PodMe home section.

audio_length: int#
is_playable: bool#
podcast_slug: str#
destination: str | None = None#
destination_path: str | None = None#
description: str | None = None#
html_description: str | None = None#
image_url: str | None = None#
id: int#
podcast_id: int#
title: str#
podcast_title: str#
length: time#
date_added: datetime#
is_premium: bool#
class podme_api.models.PodMeEpisode[source]#

Bases: PodMeEpisodeBase

Represents a PodMe episode with extended information.

author_full_name: str#
small_image_url: str#
medium_image_url: str#
stream_url: str | None = None#
slug: str | None = None#
current_spot: time#
current_spot_sec: int#
episode_can_be_played: bool#
only_as_package_subscription: bool#
has_completed: bool#
is_rss: bool | None = None#
total_no_of_episodes: int | None = None#
description: str | None = None#
html_description: str | None = None#
image_url: str | None = None#
id: int#
podcast_id: int#
title: str#
podcast_title: str#
length: time#
date_added: datetime#
is_premium: bool#
class podme_api.models.PodMeEpisodeData[source]#

Bases: PodMeEpisode

Represents detailed data for a PodMe episode.

number: int#
byte_length: int#
url: str#
type: str#
smooth_streaming_url: str#
mpeg_dash_url: str#
hls_v3_url: str#
hls_v4_url: str#
publish_date: datetime#
has_played: bool#
episode_created_at: datetime#
episode_updated_at: datetime#
podcast_image_url: str#
play_info_updated_at: datetime | None = None#
description: str | None = None#
html_description: str | None = None#
image_url: str | None = None#
is_rss: bool | None = None#
slug: str | None = None#
stream_url: str | None = None#
total_no_of_episodes: int | None = None#
author_full_name: str#
small_image_url: str#
medium_image_url: str#
current_spot: time#
current_spot_sec: int#
episode_can_be_played: bool#
only_as_package_subscription: bool#
has_completed: bool#
id: int#
podcast_id: int#
title: str#
podcast_title: str#
length: time#
date_added: datetime#
is_premium: bool#
class podme_api.models.PodMeSubscriptionPlan[source]#

Bases: BaseDataClassORJSONMixin

Represents a PodMe subscription plan.

name: str#
package_id: int#
price_decimal: float#
currency: str#
product_id: str#
plan_guid: str | None = None#
month_limit: str | None = None#
next_plan_id: int | None = None#
next_plan_price_decimal: float | None = None#
next_plan_product_id: float | None = None#
price: int | None = None#
class podme_api.models.PodMeSubscription[source]#

Bases: BaseDataClassORJSONMixin

Represents a PodMe subscription.

subscription_state: int#
subscription_type: int#
subscription_platform: int#
expiration_date: datetime#
start_date: datetime#
will_be_renewed: bool#
subscription_plan: PodMeSubscriptionPlan#
discriminator: str#
reward_month_credit: str | None = None#
image_url: str | None = None#
podcast_id: int | None = None#
podcast_title: str | None = None#
typeddict podme_api.models.FetchedFileInfo[source]#

Bases: TypedDict

Fetched file info.

Required Keys:
  • content_length (int)

  • content_type (Optional[str])

  • url (URL)