Sources API Reference

Base protocols

class xanax.sources._base.MediaSource(*args, **kwargs)[source]

Bases: Protocol

Protocol satisfied by all synchronous media source clients.

Any object implementing download and iter_media satisfies this protocol, enabling interchangeable multi-source code without coupling to a specific client class.

download(media, path=None)[source]

Download raw bytes for the given media item.

Parameters:
  • media (Any) – Source-specific media object.

  • path (str | Path | None) – Optional path to write the file to disk.

Return type:

bytes

Returns:

Raw bytes.

iter_media(params)[source]

Iterate over media items matching the given parameters.

Parameters:

params (Any) – Source-specific search/filter parameters.

Yields:

Source-specific media objects.

__init__(*args, **kwargs)
class xanax.sources._base.AsyncMediaSource(*args, **kwargs)[source]

Bases: Protocol

Protocol satisfied by all asynchronous media source clients.

The async counterpart to MediaSource. Implement download and aiter_media to satisfy this protocol.

async download(media, path=None)[source]

Download raw bytes for the given media item.

Parameters:
  • media (Any) – Source-specific media object.

  • path (str | Path | None) – Optional path to write the file to disk.

Return type:

bytes

Returns:

Raw bytes.

async aiter_media(params)[source]

Async-iterate over media items matching the given parameters.

Parameters:

params (Any) – Source-specific search/filter parameters.

Yields:

Source-specific media objects.

__init__(*args, **kwargs)