Memo AIDocs
Руководства

Экспорт всего архива

Пройдите по всем расшифровкам и выгрузите весь архив Memo AI пачками по 100.

Чтобы сделать бэкап или миграцию всего, пройдите по всем расшифровкам и экспортируйте их пачками — массовый экспорт обрабатывает до 100 за запрос.

Соберите ID всех расшифровок

Пройдите по списку через limit + offset, пока не увидите все.

import httpx

BASE = "https://app.memoai.tech/api/v1/developer"
HEADERS = {"Authorization": "Bearer mk_live_your_key_here"}

ids, offset, page = [], 0, 100
while True:
    resp = httpx.get(
        f"{BASE}/transcriptions",
        headers=HEADERS,
        params={"limit": page, "offset": offset, "status": "completed"},
    )
    resp.raise_for_status()
    data = resp.json()
    ids += [t["id"] for t in data["items"]]
    offset += page
    if offset >= data["total"]:
        break

print(f"Найдено {len(ids)} расшифровок")

Экспортируйте пачками по 100

Массовый экспорт принимает до 100 ID за вызов. Разбейте список и сохраните каждый ZIP на диск.

import io, zipfile, pathlib

OUT = pathlib.Path("memo-archive")
OUT.mkdir(exist_ok=True)

for i in range(0, len(ids), 100):
    batch = ids[i : i + 100]
    resp = httpx.post(
        f"{BASE}/transcriptions/export",
        headers=HEADERS,
        json={"ids": batch, "format": "md"},
    )
    resp.raise_for_status()
    with zipfile.ZipFile(io.BytesIO(resp.content)) as zf:
        zf.extractall(OUT)
    print(f"Пачка {i // 100 + 1}: {len(batch)} файлов")

Помните про rate limit

Data-эндпоинты позволяют 500 запросов/минуту. Экспорт тысяч встреч пачками по 100 остаётся сильно ниже — но при сильном параллелизме добавьте небольшую задержку между пачками, чтобы избежать 429.

См. также

На этой странице