ytfetcher.models package

Submodules

ytfetcher.models.channel module

class ytfetcher.models.channel.ChannelData(*, video_id: str, transcripts: list[Transcript] | None = None, metadata: DLSnippet | None = None, comments: list[Comment] | None = None)

Bases: BaseModel

comments: list[Comment] | None
metadata: DLSnippet | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

to_dict() dict
transcripts: list[Transcript] | None
video_id: str
class ytfetcher.models.channel.Comment(*, id: str, text: str, like_count: int | None = None, author: str | None = None, _time_text: str | None = None)

Bases: BaseModel

author: str | None
id: str
like_count: int | None
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

text: str
time_text: str | None
class ytfetcher.models.channel.DLSnippet(*, id: str, title: str, description: str | None = None, url: str | None = None, duration: float | None = None, view_count: int | None = None, thumbnails: list[dict] | None = None)

Bases: BaseModel

description: str | None
duration: float | None
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

thumbnails: list[dict] | None
title: str
url: str | None
validate_url() DLSnippet

If URL is missing, build it using the video_id.

video_id: str
view_count: int | None
class ytfetcher.models.channel.Transcript(*, text: str, start: float, duration: float)

Bases: BaseModel

duration: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

start: float
text: str
class ytfetcher.models.channel.VideoTranscript(*, video_id: str, transcripts: list[Transcript])

Bases: BaseModel

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

to_dict() dict
transcripts: list[Transcript]
video_id: str

Module contents

class ytfetcher.models.ChannelData(*, video_id: str, transcripts: list[Transcript] | None = None, metadata: DLSnippet | None = None, comments: list[Comment] | None = None)

Bases: BaseModel

comments: list[Comment] | None
metadata: DLSnippet | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

to_dict() dict
transcripts: list[Transcript] | None
video_id: str
class ytfetcher.models.DLSnippet(*, id: str, title: str, description: str | None = None, url: str | None = None, duration: float | None = None, view_count: int | None = None, thumbnails: list[dict] | None = None)

Bases: BaseModel

description: str | None
duration: float | None
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

thumbnails: list[dict] | None
title: str
url: str | None
validate_url() DLSnippet

If URL is missing, build it using the video_id.

video_id: str
view_count: int | None
class ytfetcher.models.Transcript(*, text: str, start: float, duration: float)

Bases: BaseModel

duration: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

start: float
text: str
class ytfetcher.models.VideoTranscript(*, video_id: str, transcripts: list[Transcript])

Bases: BaseModel

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

to_dict() dict
transcripts: list[Transcript]
video_id: str