MediaProbe
Основной класс для инспекции медиафайлов. Точка входа в библиотеку.
from url_media_probe import MediaProbe
probe = MediaProbe()
Высокоуровневая обёртка: получает части файла и парсит метаданные в MediaInfo.
Поддерживает три источника: 1. URL — скачивает по HTTP через RangeDownloader. 2. Локальный файл — читает через RangeFileReader. 3. bytes/BytesIO — читает через RangeBytesReader.
Attributes
last_head: bytes
property
Байты head последней инспекции.
last_tail: bytes
property
Байты tail последней инспекции.
downloaded: int
property
Количество фактически скачанных данных для определения информации о файле.
downloaded_human: str
property
Количество скачанных данных в человекочитаемом виде.
last_media_info: MediaInfo | None = None
instance-attribute
Methods:
from_url(url: str, *, session: aiohttp.ClientSession | None = None, timeout: int = 30, max_total: int = 256000, max_ratio: float = 0.1, max_retries: int = 3, retry_on_statuses: tuple[int, ...] = (429, 500, 502, 503, 504), retry_backoff_factor: float = 1.0, allow_external_auth: bool = False) -> MediaInfo
async
Инспектирует удалённый файл по URL.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
url
|
str
|
URL файла. |
required |
session
|
ClientSession | None
|
aiohttp-сессия (создаётся при |
None
|
timeout
|
int
|
Таймаут HTTP-запроса в секундах. |
30
|
max_total
|
int
|
Максимальный объём скачанных данных (байт).
|
256000
|
max_ratio
|
float
|
Доля размера файла — относительный лимит скачивания,
действует наравне с |
0.1
|
max_retries
|
int
|
Число повторных попыток при |
3
|
retry_on_statuses
|
tuple[int, ...]
|
HTTP-статусы, при которых повторять запрос. |
(429, 500, 502, 503, 504)
|
retry_backoff_factor
|
float
|
Множитель задержки между попытками (1.0 → 1с, 2с, 4с). |
1.0
|
allow_external_auth
|
bool
|
Разрешить отправку авторизации на сторонние домены (по умолчанию только oneme.ru/okcdn.ru). |
False
|
Returns:
| Name | Type | Description |
|---|---|---|
MediaInfo |
MediaInfo
|
Результат инспекции (в т.ч. при сетевой ошибке). |
from_file(path: str) -> MediaInfo
async
Инспектирует локальный файл.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
str
|
Путь к файлу. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
MediaInfo |
MediaInfo
|
Результат инспекции. |
from_bytes(data: bytes | BytesIO, *, file_name: str = '') -> MediaInfo
async
Инспектирует уже загруженные байты.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
bytes | BytesIO
|
Содержимое файла. |
required |
file_name
|
str
|
Имя файла (для guess MIME по расширению). |
''
|
Returns:
| Name | Type | Description |
|---|---|---|
MediaInfo |
MediaInfo
|
Результат инспекции. |
from_bytes_range(head: bytes, tail: bytes, file_size: int, *, file_name: str = '') -> MediaInfo
async
Инспектирует по готовым head/tail и известному размеру файла.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
head
|
bytes
|
Начало файла. |
required |
tail
|
bytes
|
Конец файла. |
required |
file_size
|
int
|
Полный размер файла. |
required |
file_name
|
str
|
Имя файла (для guess MIME по расширению). |
''
|
Returns:
| Name | Type | Description |
|---|---|---|
MediaInfo |
MediaInfo
|
Результат инспекции. |
full_file_save(file_path: str | Path, *, file_name: str | None = None) -> Path
async
Сохраняет файл целиком на диск.
Deprecated
Since version 0.2.2. Use download_file instead.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
file_path
|
str | Path
|
Директория для сохранения. |
required |
file_name
|
str | None
|
Имя файла. Если не указано, используется
|
None
|
Returns:
| Name | Type | Description |
|---|---|---|
Path |
Path
|
Абсолютный путь к сохранённому файлу. |
download_file(file_path: str | Path, *, file_name: str | None = None) -> Path
async
Сохраняет файл целиком на диск, используя уже полученные данные и активное соединение для докачки недостающих данных.
Работает после from_url() в любом режиме, включая
«только заголовки» — закрытое соединение переоткрывается.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
file_path
|
str | Path
|
Директория для сохранения. |
required |
file_name
|
str | None
|
Имя файла. Если не указано, используется
|
None
|
Returns:
| Name | Type | Description |
|---|---|---|
Path |
Path
|
Абсолютный путь к сохранённому файлу. |