5.2.4. ytpb.download

Download media segments.

ytpb.download.compose_default_segment_filename(sequence: int, base_url: str) str
ytpb.download.save_segment_to_file(content: bytes, sequence: int, base_url: str, output_directory: Path, output_filename) Path
ytpb.download.download_segment(sequence: int, base_url: str, output_directory: Path, output_filename: str | Callable[[int, str], str] = compose_default_segment_filename, size: int | None = None, session: Session | None = None, force_download: bool = True) Path

Downloads a segment to file.

Parameters:
  • sequence – A segment sequence number.

  • base_url – A segment base URL.

  • output_directory – Where to download a segment.

  • output_filename – A segment output filename.

  • size – An amount of bytes to download.

  • session – A requests.Session object.

  • force_download – Whether to download a segment if it already exists.

Returns:

A path where a segment was downloaded.

Raises:

SegmentDownloadError – If failed to download a segment.

ytpb.download.download_segment_to_buffer(sequence: int, base_url: str, size: int | None = None, session: Session | None = None) BytesIO

Downloads a segment to buffer.

Parameters:
  • sequence – A segment sequence number.

  • base_url – A segment base URL.

  • size – An amount of bytes to download.

  • session – A requests.Session object.

Returns:

An io.BytesIO object.

Raises:

SegmentDownloadError – If failed to download a segment.

ytpb.download.iter_segments(sequences: list[int], stream: str, size: int | None = None, session: Session | None = None) Generator[tuple[Response, int, str], None, None]

Iterates over segment sequence numbers and requests segments.

Parameters:
  • sequences – Segment sequence numbers.

  • base_url – A segment base URL.

  • size – An amount of bytes to download.

  • session – A requests.Session object.

Yields:

Tuples of a requests.Response object, segment sequence number, and base URL.