Skip to content

SABR extractor integration (follow-up to #66) #67

Description

@Priveetee

Splitting this out of #66 (which kinda turned into the research log) to track the actual extractor implementation.

Docs (how SABR works end to end: protocol, UMP, attestation): https://priveetee.github.io/Docs-PipePipe/developer-guide/introduction

What's in it: the full SABR stack on the extractor side, gated behind a new DeliveryMethod.SABR so it only kicks in on SABR-only videos and stays out of the way otherwise:

  • UMP reader + proto codec
  • VideoPlaybackAbrRequest builder + client profile
  • session / state (request number, playback cookie, buffered ranges, player time)
  • UMP response decoder (media headers, init metadata, next-request policy, stream protection status)
  • format selection by what the device can actually decode in hardware

Status: runs end to end with the client on a real device (Pixel 8). Token, download and decode all work. Memory is bounded (no more OOM on long 4K), and the session survives transient backoff interrupts.

Known limit: sustained playback is currently gated by a client-side player issue (tracked separately on the client repo: InfinityLoop1308/PipePipeClient#42), not by the extractor or the protocol. The extractor side is player-agnostic, so it has no media3 dependency.

PoC PR: #68

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions