Оцифровка, архивация и реставрация
фонограмм на магнитной ленте
Ретро-архив Аудио

Документация API

JSON API для доступа к данным архива: фонограммам, рулонам, справочникам, атрибутам и файлам. Доступ предоставляется по API-ключу, выданному администрацией архива.

Никому не передавайте ключ и не публикуйте его. В противном случае ключ может быть отозван администрацией.

Связаться с нами

Базовый адрес

https://retro-archive.ru/api/v2

Аутентификация

Ключ передаётся в заголовке запроса. Поддерживаются два варианта:

Authorization: Bearer ra_<prefix>_<secret>
X-API-Key: ra_<prefix>_<secret>

Ключ в query-параметрах не принимается. При отсутствии, неверном или отозванном ключе возвращается 401.

Формат ответа

Успешный ответ — JSON-объект. Поля верхнего уровня:

ПолеТипОписание
messagestringПри успехе — пустая строка; при ошибке — текст на английском.
dataobject, array или nullДанные ответа; при ошибке — null.
metaobjectТолько у списков: page, per_page, total, pages — целые числа.
  • 200 — успех;
  • 400 — неверные параметры;
  • 401 — нет, неверный или отозванный ключ;
  • 404 — объект с таким id не найден;
  • 500 — внутренняя ошибка.

Тексты message — на английском. Кодировка ответа — UTF-8, кеширование запрещено (Cache-Control: no-store).

Пагинация и фильтры

  • page — номер страницы, с 1;
  • per_page — записей на странице, 1..100, по умолчанию 50;
  • sort — id (по возрастанию, по умолчанию) или -id;
  • updated_since=ГГГГ-ММ-ДД — только записи, изменённые с указанной даты (для инкрементальной синхронизации).

Дополнительные фильтры: q (поиск по коду/заголовку), record, year, fund, content_type, redaction, attribute (для значений и свойств атрибутов).

Состав данных

Даты — в формате MySQL (ГГГГ-ММ-ДД ЧЧ:ММ:СС, серверное время), флаги — булевы.

Эндпоинты

МетодПутьНазначение
GET/recordsСписок фонограмм
GET/records/{id}Фонограмма с краткими сведениями о рулонах
GET/reelsСписок рулонов
GET/reels/{id}Полные сведения о рулоне
GET/datasetsСписок справочников
GET/datasets/{name}Записи справочника
GET/datasets/{name}/{id}Одна запись справочника
GET/attribute-valuesЗначения атрибутов
GET/attribute-propertiesСвойства атрибутов

Возвращаемые структуры

Фонограмма

Сведения о фонограмме в /records и /records/{id}:

ПолеТипОписание
idintИдентификатор фонограммы.
codestringКод фонограммы.
gdrzboolПринадлежность фонду ГДРЗ.
total_reelsintКоличество рулонов согласно формуляру фонограммы.
total_durationintДлительность согласно формуляру фонограммы, секунды.
total_duration_hmsstringТа же длительность в формате ЧЧ:ММ:СС.
reel_countintЧисло доступных рулонов.
reel_durationintСуммарная длительность доступных рулонов, секунды.
reel_duration_hmsstringТа же длительность в формате ЧЧ:ММ:СС.
created_at, updated_atstring или nullДаты создания и изменения.
reelsarrayТолько в /records/{id}: массив кратких сведений о рулонах (см. ниже).

Краткие сведения о рулоне

Элемент списка /reels и вложенный reels в ответе фонограммы:

ПолеТипОписание
idintИдентификатор рулона.
recordintИдентификатор фонограммы.
reel_numberintНомер рулона в фонограмме.
codestringКод рулона; для фонограмм с несколькими рулонами содержит номер.
title, subtitlestringНазвание и подзаголовок.
durationintДлительность, секунды.
duration_hmsstringДлительность в формате ЧЧ:ММ:СС.
date_recording, date_copystring или nullДаты записи и переписи.
fundobject или nullФонд — запись справочника «Фонды» с полями id (int) и name (string).
media_typeobject или nullТип носителя — запись справочника «Типы носителей» с полями id (int) и name (string).
filesobjectНаличие файлов: audio, image, zip (bool), channels (int или null).
created_at, updated_atstring или nullДаты создания и изменения.

Полные сведения о рулоне

Полная структура ответа /reels/{id}:

ПолеТипОписание
idintИдентификатор рулона.
recordintИдентификатор фонограммы.
reel_numberintНомер рулона в фонограмме.
codestringКод рулона; для фонограмм с несколькими рулонами содержит номер.
title, subtitlestringНазвание и подзаголовок.
durationintДлительность, секунды.
duration_hmsstringДлительность в формате ЧЧ:ММ:СС.
date_recording, date_copystring или nullДаты записи и переписи.
fundobject или nullФонд — полная запись справочника «Фонды» (см. «Справочник»).
media_typeobject или nullТип носителя — полная запись справочника «Типы носителей» (см. «Справочник»).
commentstringКомментарий к рулону.
variantobject или nullВариант записи — запись справочника «Варианты записи» (см. «Справочник»).
mediaobject или nullВид носителя — запись справочника «Виды носителей» (см. «Справочник»).
hardware_typeobject или nullТип оборудования оцифровки — запись справочника (см. «Справочник»).
hardwareobject или nullОборудование оцифровки — запись справочника (см. «Справочник»).
audio_interfaceobject или nullАудиоинтерфейс — запись справочника (см. «Справочник»).
tape_speedobject или nullСкорость ленты — запись справочника (см. «Справочник»).
content_typesarrayТипы содержания: объекты id (int) и name (string).
redactionsarrayРедакции: объекты id (int) и name (string).
tracksarrayОбъекты number (int) и name (string).
attributesarrayПлоский список атрибутов рулона (см. ниже).
filesobjectПолный объект файлов (см. «Файлы»).
created_at, updated_atstring или nullДаты создания и изменения.

Атрибут рулона

ПолеТипОписание
trackint или nullНомер дорожки.
attributeobjectid, name; type — объект id и name.
valueobjectЗначение: id (int) и name (string).
propertyobject или nullСвойство: id (int) и name (string).
parent_value_id, parent_property_idint или nullРодительские значение и свойство для вложенных атрибутов.

Справочник

/datasets возвращает краткий список справочников; элемент списка:

ПолеТипОписание
namestringИмя справочника.
titlestringНазвание справочника для интерфейса.

Запись /datasets/{name} и /datasets/{name}/{id}. Поля по справочникам:

Атрибуты (attribute)

ПолеТипОписание
idintИдентификатор записи.
namestringНазвание.
typeintИдентификатор типа атрибута.
created_at, updated_atstring или nullДаты создания и изменения.

Типы атрибутов (attribute_type)

ПолеТипОписание
idintИдентификатор записи.
namestringНазвание.
nested0/1Признак вложенности.
created_at, updated_atstring или nullДаты создания и изменения.

Аудиоинтерфейсы (audio_interface)

ПолеТипОписание
idintИдентификатор записи.
namestringНазвание.
created_at, updated_atstring или nullДаты создания и изменения.

Типы содержания (content_type)

ПолеТипОписание
idintИдентификатор записи.
namestringНазвание.
created_at, updated_atstring или nullДаты создания и изменения.

Фонды (fund)

ПолеТипОписание
idintИдентификатор записи.
namestringНазвание.
created_at, updated_atstring или nullДаты создания и изменения.

Оборудование (hardware)

ПолеТипОписание
idintИдентификатор записи.
namestringНазвание.
typeint или nullИдентификатор типа оборудования.
created_at, updated_atstring или nullДаты создания и изменения.

Типы магнитофонов (hardware_type)

Справочник hardware_type не входит в /datasets; его запись возвращается как поле hardware_type в полных сведениях о рулоне.

ПолеТипОписание
idintИдентификатор записи.
namestringНазвание.
created_at, updated_atstring или nullДаты создания и изменения.

Виды носителей (media)

ПолеТипОписание
idintИдентификатор записи.
namestringНазвание.
typeint или nullИдентификатор типа носителя.
created_at, updated_atstring или nullДаты создания и изменения.

Типы носителей (media_type)

ПолеТипОписание
idintИдентификатор записи.
namestringНазвание.
tape_speedintСкорость ленты.
created_at, updated_atstring или nullДаты создания и изменения.

Редакции (redaction)

ПолеТипОписание
idintИдентификатор записи.
namestringНазвание.
full_namestringПолное название.
content_typesarray intИдентификаторы типов содержания.
created_at, updated_atstring или nullДаты создания и изменения.

Скорости ленты (tape_speed)

ПолеТипОписание
idintИдентификатор записи.
namestringНазвание.
created_at, updated_atstring или nullДаты создания и изменения.

Варианты записи (variant)

ПолеТипОписание
idintИдентификатор записи.
namestringНазвание.
stereoboolСтерео.
created_at, updated_atstring или nullДаты создания и изменения.

Неверное имя справочника даёт 404.

Значение и свойство атрибута

Элементы /attribute-values и /attribute-properties:

ПолеТипОписание
idintИдентификатор значения или свойства.
namestringНазвание.
attributeobjectid, name; type — объект id и name.

Файлы

Полный объект files в ответе /reels/{id}; если у рулона нет медиа — пустой объект:

ПолеТипОписание
hashstringПубличный идентификатор медиа.
audioobjectПри наличии аудио: ссылки, параметры и метаданные.
audio.stream_urlstringСсылка на mp3 для прослушивания.
audio.mp3_urlstringСсылка на mp3 для скачивания.
audio.flac_urlstringСсылка на flac для скачивания.
audio.channels, audio.bit_depth, audio.sampling_rateint или nullТехнические параметры аудио.
audio.mp3, audio.flacobjectМетаданные: size_bytes (int или null), checksum_sha256 (string или null).
imageobjectПри наличии изображения: preview_url, full_url, download_url (string), preview и full — метаданные.
image.preview, image.fullobjectМетаданные: size_bytes (int или null), checksum_sha256 (string или null).
zipobjectПри наличии архива: download_url (string), size_bytes (int или null), checksum_sha256 (string или null).
  • Ссылки подписаны и действуют 1 час; их можно использовать многократно до истечения срока.
  • По ссылке доступны файлы опубликованных рулонов.
  • checksum_sha256 может быть null, пока метаданные файла не рассчитаны; size_bytes содержит размер файла.