Movies

Movie aggregation service: categories, lists, details, episode lists, and playback URLs (m3u8) for films and TV shows — build a complete streaming site with the "list → detail → play" flow.

/api/movies/

Service Description

The movie service aggregates data from a film and TV site and provides the full chain of categories, filters, home recommendations, lists, details, episode lists and playback URLs (m3u8). Following "category, list, detail, playback URL" is enough to build a movie site, and the search endpoint looks titles up by keyword.

Key IDs follow a fixed order: the id returned by the categories API goes to the list API's type_id, an item's id goes to the detail API's vod_id, and the sid / nid from the detail response go to the playback API. Chaining them yields a complete playback flow.

Metadata such as title, synopsis and episode count is cached for a long time, while playback URLs (m3u8) expire and are cached only briefly, so do not cache playback URLs on the client for long. This service requires project signature authentication.

Response Format

Every endpoint returns the same JSON envelope; the payload is always inside data:

{
  "code": 10000,
  "msg": "成功",
  "data": { ... }
}
  • code: business status code. 10000 means success; anything else is an error — see the Error Codes page for the full list.
  • msg: a human-readable message you can show to end users, but never use it for program logic.
  • data: the payload; usually null on error. Each endpoint's Response section lists its data fields.

Judge success by code, not by the HTTP status code. View all error codes

555 Movies

555 Movies (5dy4.vip) Signature Required

Crawls the source site in real time and caches the results. Data (titles / details / episode counts) is cached longer, while playback URLs (m3u8) are cached briefly so they stay fresh.

GET /api/movies/movie_555/categories Total calls: 0

Category List

Get available categories (main categories / sub-categories / specials).

  • Use it to build site navigation: main holds the primary categories and sub holds the TV-series sub-categories; every returned id can be passed to the list endpoint as type_id.
Response Common envelope
Field Type Description
main array Main category list
main[].id int Category ID, pass to the list API as type_id
main[].name string Category name
sub array Sub-categories of TV series
sub[].id int Sub-category ID, also usable as type_id
sub[].name string Sub-category name
labels array Homepage topic (label) list
labels[].key string Topic key
labels[].name string Topic name
Example response
{
  "main": [
    {"id": 1, "name": "电影"},
    {"id": 2, "name": "连续剧"}
  ],
  "sub": [
    {"id": 13, "name": "热门连续剧"}
  ],
  "labels": [
    {"key": "netflix", "name": "Netflix 专区"}
  ]
}
GET /api/movies/movie_555/filters Total calls: 0

Filters

Get the filters available for a category: sub-categories, region, genre, language, year, and sort order.

Required: category ID (see the category list endpoint), e.g. 1=Movies 2=TV Series.

  • Returns data.sub_types (sub-categories; pass value back as type_id) and data.groups.
  • data.groups holds five groups — region, genre, language, year and sort order; pass value back to the list endpoint as the same-named parameter.
  • Available values differ per category (anime offers Japan / Europe & America, variety offers Reality Show / Talk Show, and so on), and the year list grows as the site adds titles. Render the filter bar from this endpoint instead of hard-coding values in the client.
Response Common envelope
Field Type Description
type_id int Category ID (echoes the input)
sub_types array Sub-categories of this category
sub_types[].name string Sub-category name
sub_types[].value string Value, pass back to the list API as type_id
groups array Filter groups (area/genre/lang/year/order)
groups[].key string Parameter name (area/genre/lang/year/order)
groups[].name string Group name
groups[].options array Selectable values of this group
groups[].options[].name string Option name
groups[].options[].value string Option value, pass back to the same-named parameter
Example response
{
  "type_id": 1,
  "sub_types": [{"name": "动作片", "value": "6"}],
  "groups": [
    {"key": "area", "name": "地区", "options": [{"name": "大陆", "value": "大陆"}]}
  ]
}
GET /api/movies/movie_555/home Total calls: 0

Home Feed

Get home feed data: the carousel and all recommendation blocks (best of the week / month, rankings, and more).

  • Returns all home recommendation blocks in one call, ready to render the site home page.
Response Common envelope
Field Type Description
carousel array Carousel
carousel[].id string Movie ID
carousel[].name string Title
carousel[].url string Detail page URL
carousel[].cover string Cover image URL
carousel[].note string Badge / note
carousel[].intro string Short intro
blocks array Recommendation blocks
blocks[].title string Block title
blocks[].items array Movies in the block
blocks[].items[].id string Movie ID
blocks[].items[].name string Title
blocks[].items[].url string Detail page URL
blocks[].items[].cover string Cover image URL
blocks[].items[].note string Badge / note
blocks[].items[].douban string Douban rating
Example response
{
  "carousel": [
    {"id": "812640", "name": "示例影片", "url": "https://5dy4.vip/voddetail/812640.html", "cover": "https://img.example.com/812640.jpg", "note": "", "intro": ""}
  ],
  "blocks": [
    {"title": "本周最佳", "items": [
      {"id": "812640", "name": "示例影片", "url": "https://5dy4.vip/voddetail/812640.html", "cover": "https://img.example.com/812640.jpg", "note": "", "douban": "8.0"}
    ]}
  ]
}
GET /api/movies/movie_555/list Total calls: 0

Category List

Get a movie list by category, with pagination, sorting, and combined year / region / genre / language filters.

Required: category ID — 1=Movies 2=TV Series 3=Variety & Documentary 4=Anime 124=Premium 126=Short Dramas (sub-categories come from sub in the category list endpoint).

Optional: page number, starting from 1, default 1.

Optional: sort order time / hits / score.

Optional: filter by year, e.g. 2026 (values come from the year group of the filters endpoint).

Optional: filter by region, e.g. 大陆 (values come from the area group of the filters endpoint).

Optional: filter by genre, e.g. 动作 (values come from the genre group of the filters endpoint).

Optional: filter by language, e.g. 国语 (values come from the lang group of the filters endpoint).

  • Returns data.items (movie list) and data.pagination (pagination info).
  • Region / genre / language / year / sort can be combined freely and the source site returns the intersection. When a combination matches nothing, data.items is an empty array rather than an error.
Response Common envelope
Field Type Description
type_id int Category ID (echoes the input)
page int Current page
items array Movie list
items[].id string Movie ID, pass to the detail API as vod_id
items[].name string Title
items[].url string Detail page URL
items[].cover string Cover image URL
items[].note string Badge / note
items[].douban string Douban rating
pagination object Pagination
pagination.current int Current page
pagination.total int Total pages
Example response
{
  "type_id": 1,
  "page": 1,
  "items": [
    {"id": "812640", "name": "示例影片", "url": "https://5dy4.vip/voddetail/812640.html", "cover": "https://img.example.com/812640.jpg", "note": "更新至10集", "douban": "8.0"}
  ],
  "pagination": {"current": 1, "total": 44}
}
GET /api/movies/movie_555/detail Total calls: 0

Movie Details

Get movie details: synopsis, director / cast metadata, playback sources, and episode lists.

Required: movie ID (from the id field in list / search results).

  • Returns data.sources (playback sources); each source contains episodes, whose sid / nid are used by the playback URL endpoint.
  • Returns 40001 when the movie does not exist.
Response Common envelope
Field Type Description
id string Movie ID
name string Title
cover string Cover image URL
intro string Synopsis
info object Metadata key-value pairs (director/cast/release, etc.)
sources array Play source list
sources[].sid string Play source index, pass to the play API
sources[].name string Play source name
sources[].episodes array Episode list of this source
sources[].episodes[].nid string Episode index, pass to the play API
sources[].episodes[].name string Episode name
sources[].episodes[].url string Play page URL
Example response
{
  "id": "812640",
  "name": "示例影片",
  "cover": "https://img.example.com/812640.jpg",
  "intro": "",
  "info": {"导演": "张三", "主演": "李四", "上映": "2026"},
  "sources": [
    {"sid": "3", "name": "线路1", "episodes": [
      {"nid": "1", "name": "第1集", "url": "https://5dy4.vip/vodplay/812640-3-1.html"}
    ]}
  ]
}
GET /api/movies/movie_555/play Total calls: 0

Playback URL

Get the m3u8 playback URL for a given playback source and episode.

Required: playback source index, from sources[].sid in the detail response.

Required: episode index, from episodes[].nid (usually 1 for movies).

  • data.m3u8 is a playable URL; it is time-limited, so it is cached only briefly (30 minutes by default).
  • The source URL is returned directly without proxying.
  • Returns 40001 when sid / nid are out of range or the source site has no valid URL.
  • An online player is provided below: it auto-plays after a successful request, and you can also paste any m3u8 URL to test.
Response Common envelope
Field Type Description
id string Movie ID (echoes the input)
sid int Play source index (echoes the input)
nid int Episode index (echoes the input)
name string Title
episode string Episode name
m3u8 string m3u8 play URL (time-limited)
from string Upstream source flag
encrypt int Encrypted flag (upstream field, usually 0)
Example response
{
  "id": "812640",
  "sid": 3,
  "nid": 1,
  "name": "示例影片",
  "episode": "第1集",
  "m3u8": "https://cdn.example.com/812640/1000.m3u8",
  "from": "dyttm3u8",
  "encrypt": 0
}
Playback Test hls.js / mp4 Plays automatically after the request above succeeds; you can also paste any playback URL (m3u8 / mp4) to test.
XiaoYingAPI · Unified API Aggregation Service