piped_api.models.channels

View Source
import typing as t

from . import BasePipedModel
from .videos import Video



class NextPageChannel(BasePipedModel):
    """
        Represents a channel obtained via the `nextpage` endpoint.

        This model contains only `nextpage` and `relatedStreams`. It's a parent for `Channel`.
    """

    @property
    def nextpage(self) -> str:
        """
            A JSON encoded string to be passed to the `'nextpage'` endpoint(s) when
            obtaining paginated data.
        """

        return self.data['nextpage']


    @property
    def uploaded_videos(self) -> t.List[Video.RelatedStream]:
        """
            List of uploaded videos from the current fetched data

            There are max. 30 videos per page
        """

        return [Video.RelatedStream(video_data) for video_data in self.data['relatedStreams']]



class Channel(NextPageChannel):
    """
        Represents a YouTube channel.

        Contains properties of `NextPageChannel`.
    """

    @property
    def id(self) -> str:
        """
            The channel's ID
        """

        return self.data['id']


    @property
    def name(self) -> str:
        """
            The channel's name
        """

        return self.data['name']


    @property
    def avatar_url(self) -> str:
        """
            The channel's avatar URL
        """

        return self.data['avatarUrl']


    @property
    def banner_url(self) -> str:
        """
            The channel's banner URL
        """

        return self.data['bannerUrl']


    @property
    def description(self) -> str:
        """
            The channel's description
        """

        return self.data['description']


    @property
    def subscriber_count(self) -> int:
        """
            The number of subscribers the channel has
        """

        return self.data['subscriberCount']


    @property
    def verified(self) -> bool:
        """
            Whether or not the channel is verified by YouTube (has a badge)
        """

        return self.data['verified']
#   class NextPageChannel(piped_api.models.BasePipedModel):
View Source
class NextPageChannel(BasePipedModel):
    """
        Represents a channel obtained via the `nextpage` endpoint.

        This model contains only `nextpage` and `relatedStreams`. It's a parent for `Channel`.
    """

    @property
    def nextpage(self) -> str:
        """
            A JSON encoded string to be passed to the `'nextpage'` endpoint(s) when
            obtaining paginated data.
        """

        return self.data['nextpage']


    @property
    def uploaded_videos(self) -> t.List[Video.RelatedStream]:
        """
            List of uploaded videos from the current fetched data

            There are max. 30 videos per page
        """

        return [Video.RelatedStream(video_data) for video_data in self.data['relatedStreams']]

Represents a channel obtained via the nextpage endpoint.

This model contains only nextpage and relatedStreams. It's a parent for Channel.

#   nextpage: str

A JSON encoded string to be passed to the 'nextpage' endpoint(s) when obtaining paginated data.

List of uploaded videos from the current fetched data

There are max. 30 videos per page

#   class Channel(NextPageChannel):
View Source
class Channel(NextPageChannel):
    """
        Represents a YouTube channel.

        Contains properties of `NextPageChannel`.
    """

    @property
    def id(self) -> str:
        """
            The channel's ID
        """

        return self.data['id']


    @property
    def name(self) -> str:
        """
            The channel's name
        """

        return self.data['name']


    @property
    def avatar_url(self) -> str:
        """
            The channel's avatar URL
        """

        return self.data['avatarUrl']


    @property
    def banner_url(self) -> str:
        """
            The channel's banner URL
        """

        return self.data['bannerUrl']


    @property
    def description(self) -> str:
        """
            The channel's description
        """

        return self.data['description']


    @property
    def subscriber_count(self) -> int:
        """
            The number of subscribers the channel has
        """

        return self.data['subscriberCount']


    @property
    def verified(self) -> bool:
        """
            Whether or not the channel is verified by YouTube (has a badge)
        """

        return self.data['verified']

Represents a YouTube channel.

Contains properties of NextPageChannel.

#   id: str

The channel's ID

#   name: str

The channel's name

#   avatar_url: str

The channel's avatar URL

#   banner_url: str

The channel's banner URL

#   description: str

The channel's description

#   subscriber_count: int

The number of subscribers the channel has

#   verified: bool

Whether or not the channel is verified by YouTube (has a badge)