POST /api/v1/videos
Authorization: Bearer <token>
Content-Type: multipart/form-data
{ "title": "My Travel Vlog", "description": "Exploring Bali", "tags": ["travel", "vlog", "bali"], "file": <binary_video_file> }
{ "videoId": "vid_12345", "status": "processing" }
GET
/api/v1/videos/{videoId}/stream
Authorization: Bearer <token>
(optional for
public videos)quality=720p
,
format=HLS
.m3u8
playlist or video
chunks (served via CDN)GET /api/v1/videos/search
q=travel vlog
page=1
limit=20
{ "results": [ { "videoId": "vid_12345", "title": "My Travel Vlog", "thumbnailUrl": "https://cdn.example.com/thumbs/vid_12345.jpg", "views": 100000 } ] }
POST /api/v1/videos/{videoId}/like
POST /api/v1/videos/{videoId}/dislike
Authorization: Bearer
<token>
{ "videoId": "vid_12345", "likes": 1023, "dislikes": 45 }
POST
/api/v1/videos/{videoId}/comments
Authorization: Bearer
<token>
{ "comment": "Amazing video! Keep it up 👏" }
{ "commentId": "cmt_98765", "videoId": "vid_12345", "userId": "usr_1111", "comment": "Amazing video! Keep it up 👏", "createdAt": "2025-08-18T10:00:00Z" }
GET
/api/v1/videos/{videoId}/thumbnails
{ "thumbnails": [ {"resolution": "120x90", "url": "https://cdn.example.com/thumbs/vid_12345_120x90.jpg"}, {"resolution": "480x360", "url": "https://cdn.example.com/thumbs/vid_12345_480x360.jpg"}, {"resolution": "1280x720", "url": "https://cdn.example.com/thumbs/vid_12345_1280x720.jpg"} ] }