Skip to content

API Reference

This document lists the available API endpoints for VideoCMS.

Public Web & Player

These routes are primarily used by the video player and public interfaces.

Captcha

  • GET /captcha/challenge: Get a captcha challenge.
  • POST /captcha/verify: Verify a captcha response.

Player & Streaming

  • GET /v/:UUID: Player page for a video.
  • GET /:UUID/stream/muted/master.m3u8: Get muted master playlist.
  • GET /:UUID/stream/multi/master.m3u8: Get multi-quality master playlist.
  • GET /:UUID/image/thumb/:FILE: Get video thumbnail.
  • GET /:UUID/:SUBUUID/subtitle/:FILE: Get subtitle file.
  • GET /:UUID/:AUDIOUUID/stream/master.m3u8: Get audio stream.
  • GET /:UUID/:QUALITY/download/video.mkv: Download video.
  • GET /:UUID/:QUALITY/:JWT/:STREAM/stream/video.mp4: Stream video file directly.
  • GET /:UUID/:QUALITY/:FILE: Get video segment/file.
  • GET /:UUID/:AUDIOUUID/audio/:FILE: Get audio segment/file.

Authentication API

Base URL: /api/auth

  • POST /login: Login to the system.
  • GET /check: Check current authentication status.
  • GET /refresh: Refresh authentication token.
  • POST /apikey: Authenticate using an API key.

Public API

Base URL: /api

  • GET /config: Get public configuration.
  • GET /file/example: Get an example file.
  • GET /p/pages: List public web pages.
  • GET /p/page: Get a specific public web page.

Private API (Authenticated)

These routes require a valid JWT token.

Base URL: /api

Folders

  • GET /folders: List folders.
  • POST /folder: Create a new folder.
  • PUT /folder: Update a folder.
  • DELETE /folder: Delete a folder.
  • DELETE /folders: Bulk delete folders.

Files

  • GET /files: List files.
  • GET /file: Get file details.
  • POST /file: Create a file entry.
  • POST /file/clone: Clone a file.
  • PUT /file: Update file details.
  • DELETE /file: Delete a file.
  • DELETE /files: Bulk delete files.
  • GET /files/search: Search for files.

Tags

  • POST /file/tag: Add a tag to a file.
  • DELETE /file/tag: Remove a tag from a file.

Uploads (PCU)

  • GET /pcu/sessions: List upload sessions.
  • POST /pcu/session: Create an upload session.
  • DELETE /pcu/session: Delete an upload session.
  • POST /pcu/chunck: Upload a file chunk.
  • POST /pcu/file: Finalize an upload.

Account Stats

  • GET /account: Get account details.
  • GET /account/settings: Get user settings.
  • PUT /account/settings: Update user settings.
  • GET /account/traffic: Get traffic statistics.
  • GET /account/traffic/top: Get top traffic statistics.
  • GET /account/upload: Get upload statistics.
  • GET /account/upload/top: Get top upload statistics.
  • GET /account/encoding: Get encoding statistics.
  • GET /account/encoding/top: Get top encoding statistics.
  • GET /account/storage/top: Get top storage statistics.

Webhooks

  • GET /webhooks: List webhooks.
  • POST /webhook: Create a webhook.
  • PUT /webhook: Update a webhook.
  • DELETE /webhook: Delete a webhook.

Encodings

  • GET /encodings: List encoding jobs.

Admin API (Authenticated & Admin)

Base URL: /api

System Stats

  • GET /stats: Get system statistics.
  • GET /stats/traffic: Get global traffic stats.
  • GET /stats/traffic/top: Get global top traffic stats.
  • GET /stats/upload: Get global upload stats.
  • GET /stats/upload/top: Get global top upload stats.
  • GET /stats/encoding: Get global encoding stats.
  • GET /stats/encoding/top: Get global top encoding stats.
  • GET /stats/storage/top: Get global top storage stats.

User Management

  • GET /users: List all users.
  • POST /users: Create a new user.
  • GET /users/:id: Get a specific user.
  • PUT /users/:id: Update a user.
  • DELETE /users/:id: Delete a user.
  • POST /users/:id/password: Reset user password.

Settings & Pages

  • GET /settings: Get system settings.
  • PUT /settings: Update system settings.
  • GET /pages: List all web pages.
  • POST /page: Create a web page.
  • PUT /page: Update a web page.
  • DELETE /page: Delete a web page.

Admin Encodings

  • GET /admin/encodings: List all encoding jobs (admin view).

Other

  • GET /move: Move items (Controller: MoveItemsController).
  • GET /versioncheck: Check for updates.

Released under the AGPL-3.0 License.