DubByMeow API

версия 1.0.0 · https://api.meowhub.lol/v1

Что озвучила студия DubByMeow и что выйдет дальше: тайтлы, вышедшие серии со ссылкой на видео и титрами, план выходов. Только чтение. Тайтл называется номером AniList или MyAnimeList — тем же, что на любом аниме-сайте.

Быстрый старт

Положите ключ в переменную окружения и запросите ленту релизов:

export DUBBYMEOW_KEY="ваш_ключ"
curl -H "Authorization: Bearer $DUBBYMEOW_KEY" \
  "https://api.meowhub.lol/v1/releases?limit=5"

В ответ придёт JSON — последние пять вышедших серий со ссылкой на видео и титрами. Тот же запрос можно собрать в Postman или Insomnia: импортируйте https://api.meowhub.lol/openapi.json, и все адреса появятся сами.

Ключ и ограничения

Общие правила

Адреса

GET/titles— Тайтлы студии

Все тайтлы, которые студия озвучивает или озвучила, по алфавиту. Многоголосая и одноголосая озвучка одного аниме — один тайтл; какие виды уже вышли, видно в voices.

statusпараметрТолько с этим состоянием: planned, in_progress, paused, done
curl -H "Authorization: Bearer $DUBBYMEOW_KEY" \
  "https://api.meowhub.lol/v1/titles"
Пример ответа
{
  "titles": [
    {
      "ref": "anilist-154587",
      "ids": {
        "anilist": 154587,
        "mal": 52991
      },
      "name": "Провожающая в последний путь Фрирен",
      "originalName": "Sousou no Frieren",
      "status": "in_progress",
      "poster": "https://animeow.org/covers/9926.webp",
      "episodesTotal": 28,
      "episodesReleased": 2,
      "voices": [
        "multi"
      ],
      "lastReleaseAt": "2026-10-08T15:00:00.000Z"
    }
  ]
}

GET/titles/{ref}— Тайтл и его вышедшие серии

Серии — только вышедшие, по номеру. Если у серии есть обе озвучки, она встречается дважды: с voice: multi и voice: solo.

refв адресе, обязателенСсылка на тайтл: номер AniList (anilist-154587) или MyAnimeList / Shikimori (mal-52991)
curl -H "Authorization: Bearer $DUBBYMEOW_KEY" \
  "https://api.meowhub.lol/v1/titles/anilist-154587"
Пример ответа
{
  "title": {
    "ref": "anilist-154587",
    "ids": {
      "anilist": 154587,
      "mal": 52991
    },
    "name": "Провожающая в последний путь Фрирен",
    "originalName": "Sousou no Frieren",
    "status": "in_progress",
    "poster": "https://animeow.org/covers/9926.webp",
    "episodesTotal": 28,
    "episodesReleased": 2,
    "voices": [
      "multi"
    ],
    "lastReleaseAt": "2026-10-08T15:00:00.000Z"
  },
  "episodes": [
    {
      "number": 1,
      "voice": "multi",
      "releasedAt": "2026-10-01T15:00:00.000Z",
      "video": "https://drive.google.com/file/d/1AbCdEfGhIjKlMnOpQrStUvWxYz012345/view",
      "credits": {
        "cast": [
          {
            "character": "Фрирен",
            "actor": "Маря"
          },
          {
            "character": "Ферн",
            "actor": "Кира"
          }
        ],
        "additionalVoices": [
          "Мекс"
        ],
        "translation": [
          "Алекс"
        ],
        "timing": [
          "Мекс"
        ],
        "mixing": [
          "Мекс"
        ],
        "qc": [
          "Кира"
        ]
      }
    },
    {
      "number": 2,
      "voice": "multi",
      "releasedAt": "2026-10-08T15:00:00.000Z",
      "video": "https://drive.google.com/file/d/1AbCdEfGhIjKlMnOpQrStUvWxYz012345/view",
      "credits": {
        "cast": [
          {
            "character": "Фрирен",
            "actor": "Маря"
          },
          {
            "character": "Ферн",
            "actor": "Кира"
          }
        ],
        "additionalVoices": [
          "Мекс"
        ],
        "translation": [
          "Алекс"
        ],
        "timing": [
          "Мекс"
        ],
        "mixing": [
          "Мекс"
        ],
        "qc": [
          "Кира"
        ]
      }
    }
  ]
}

GET/releases— Лента релизов

Вышедшие серии всех тайтлов, свежие первыми. Чтобы получать только новое, передавайте в since время последней серии, которую вы уже видели.

limitпараметрСколько серий вернуть — от 1 до 100, по умолчанию 20
sinceпараметрТолько серии, вышедшие позже этого момента (ISO 8601)
curl -H "Authorization: Bearer $DUBBYMEOW_KEY" \
  "https://api.meowhub.lol/v1/releases"
Пример ответа
{
  "releases": [
    {
      "title": {
        "ref": "anilist-154587",
        "name": "Провожающая в последний путь Фрирен",
        "originalName": "Sousou no Frieren",
        "poster": "https://animeow.org/covers/9926.webp"
      },
      "number": 2,
      "voice": "multi",
      "releasedAt": "2026-10-08T15:00:00.000Z",
      "video": "https://drive.google.com/file/d/1AbCdEfGhIjKlMnOpQrStUvWxYz012345/view",
      "credits": {
        "cast": [
          {
            "character": "Фрирен",
            "actor": "Маря"
          },
          {
            "character": "Ферн",
            "actor": "Кира"
          }
        ],
        "additionalVoices": [
          "Мекс"
        ],
        "translation": [
          "Алекс"
        ],
        "timing": [
          "Мекс"
        ],
        "mixing": [
          "Мекс"
        ],
        "qc": [
          "Кира"
        ]
      }
    }
  ]
}

GET/schedule— План выходов

Невышедшие серии с плановой датой выхода, ближайшие первыми. Дата — планы студии, а не обещание: серия может выйти позже.

daysпараметрНа сколько дней вперёд — от 1 до 90, по умолчанию 30
curl -H "Authorization: Bearer $DUBBYMEOW_KEY" \
  "https://api.meowhub.lol/v1/schedule"
Пример ответа
{
  "schedule": [
    {
      "title": {
        "ref": "anilist-154587",
        "name": "Провожающая в последний путь Фрирен",
        "originalName": "Sousou no Frieren",
        "poster": "https://animeow.org/covers/9926.webp"
      },
      "number": 3,
      "releaseDate": "2026-10-15",
      "stage": "recording"
    }
  ]
}

Объекты

Title

refstringСсылка на тайтл: номер AniList (anilist-154587) или MyAnimeList / Shikimori (mal-52991)
idsobjectanilist — Номер на AniList; mal — Номер на MyAnimeList, он же на Shikimori
namestringНазвание по-русски
originalNamestring | nullНазвание в оригинале, латиницей
statusplanned | in_progress | paused | doneСостояние работы над тайтлом
posterstring | nullАдрес обложки
episodesTotalinteger | nullСколько серий в сезоне
episodesReleasedintegerСколько серий вышло в озвучке студии
voicesmulti | solo[]Какие виды озвучки уже вышли: многоголосая, одноголосая (до двух голосов)
lastReleaseAtstring | nullКогда вышла последняя серия

Episode

numberintegerНомер серии
voicemulti | soloВид озвучки
releasedAtstring | nullКогда серия вышла
videostring | nullСсылка на видео: Google Диск или прямой адрес. null — серия вышла, но ссылку не указали
creditsCredits

Credits

castobject[]Роли
additionalVoicesstring[]Актёры без отдельной роли: массовка, эпизоды
translationstring[]Перевод
timingstring[]Укладка текста
mixingstring[]Сведение
qcstring[]Контроль качества

TitleBrief

refstringСсылка на тайтл: номер AniList (anilist-154587) или MyAnimeList / Shikimori (mal-52991)
namestringНазвание по-русски
originalNamestring | nullНазвание в оригинале
posterstring | nullАдрес обложки

ScheduleItem

titleTitleBrief
numberintegerНомер серии
releaseDatestringПлановый день выхода по Москве
stagetranslation | timing | recording | mixing | qc | publishНа каком этапе серия сейчас

Release в ленте релизов — это Episode с добавленным полем title (TitleBrief).

Ошибки

Любая ошибка — JSON одного вида. code — для программы, message — для человека.

{
  "error": {
    "code": "unauthorized",
    "message": "Нужен заголовок Authorization: Bearer <ключ>"
  }
}
400bad_requestНеверный параметр — в message сказано какой
401unauthorizedНет заголовка с ключом или ключ неверный
404not_foundТакого тайтла студия не озвучивает
429rate_limitedСлишком часто — подождите Retry-After секунд
500internalСбой на нашей стороне — повторите позже