Use the MyVidster API to read public video data, fetch user profiles, bookmark new videos, and update your own video, channel, and collection metadata.
Base URL: https://www.myvidster.com/api/v1.php
Friendly URL: https://www.myvidster.com/api/v1
Read calls use GET. Write calls use POST with JSON or standard form fields. Write calls require your MyVidster user_id and private API key from your user options page.
Public video reads return videos marked family friendly (private = 0) and adult (private = 2).
Private videos (private = 1) are only returned when the owner provides user_id and a valid API key.
Authenticated calls require a user id and token. You can send the token as token, api_key, or as a bearer token.
You can get your private API key from https://www.myvidster.com/user/options.php.
Authorization: Bearer YOUR_PRIVATE_API_KEY
| Field | Required | Description |
|---|---|---|
user_id | Yes | Your MyVidster numeric user id. |
token | Yes | Your private API key from MyVidster user options. |
GET /api/v1.php?action=status
GET /api/v1.php?action=video&id=12345
GET /api/v1.php?action=videos&q=music&limit=25
GET /api/v1.php?action=user&username=demo
GET /api/v1.php?action=user_videos&username=demo&sort=recent
| Parameter | Applies To | Description |
|---|---|---|
limit | videos, user_videos | Number of results, from 1 to 100. Default is 25. |
page | videos, user_videos | Page number. Default is 1. |
q | videos | Optional text search across title, description, tags, and keywords. |
sort | user_videos | Optional sort order. Use recent, oldest, most_viewed, least_viewed, title_asc, or title_desc. Default is recent. |
user_id + token | video, user_videos | Optional for reads. When provided by the owner, private videos are included. |
The private field controls video visibility. Public read calls return videos with private = 0 and private = 2.
Owner-only videos with private = 1 are returned only when the owner sends user_id and a valid token or api_key.
| Value | Meaning | API Behavior |
|---|---|---|
0 | Family friendly public video | Shown in public video reads. |
1 | Private owner-only video | Shown only to the authenticated owner on video and user_videos reads. |
2 | Adult public video | Shown in public video reads. |
3 | Deleted or disabled video | Not returned by public API reads and not accepted for API writes. |
For bookmark_video, send private as 0, 1, or 2. When omitted, the new bookmark defaults to public family friendly unless MyVidster's existing save logic marks it differently.
For update_video, omit private to keep the current visibility.
All write endpoints are POST requests. Omitted metadata fields keep their current value when updating existing content.
| Action | Required Fields | Description |
|---|---|---|
bookmark_video | user_id, token, url, channel_id | Bookmark a new video by providing the URL to the video's web page. |
update_video | user_id, token, video_id | Update a video you own. |
remove_video | user_id, token, video_id | Remove a video you own. This soft-deletes the bookmark and removes it from public API reads. |
update_channel | user_id, token, channel_id | Update a channel you own. |
update_collection | user_id, token, collection_id | Update a collection you own. |
<?php
$apiUrl = 'https://www.myvidster.com/api/v1.php?action=bookmark_video';
$payload = [
'user_id' => 123,
'token' => 'YOUR_PRIVATE_API_KEY',
'url' => 'https://example.com/video-page',
'channel_id' => 456,
'tags' => 'music tutorial',
'private' => 0
];
$ch = curl_init($apiUrl);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode($payload)
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$result = json_decode($response, true);
if ($httpCode !== 200 || empty($result['ok'])) {
print_r($result);
exit;
}
echo 'Bookmarked video id: ' . $result['video_id'];
?>
<?php
$apiUrl = 'https://www.myvidster.com/api/v1.php?action=update_video';
$payload = [
'user_id' => 123,
'token' => 'YOUR_PRIVATE_API_KEY',
'video_id' => 789,
'title' => 'Updated title',
'description' => 'Updated description',
'tags' => 'favorites tutorial',
'private' => 0
];
$ch = curl_init($apiUrl);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode($payload)
]);
$response = curl_exec($ch);
curl_close($ch);
print_r(json_decode($response, true));
?>
<?php
$apiUrl = 'https://www.myvidster.com/api/v1.php?action=remove_video';
$payload = [
'user_id' => 123,
'token' => 'YOUR_PRIVATE_API_KEY',
'video_id' => 789
];
$ch = curl_init($apiUrl);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode($payload)
]);
$response = curl_exec($ch);
curl_close($ch);
print_r(json_decode($response, true));
?>
<?php
$url = 'https://www.myvidster.com/api/v1.php?action=videos&q=music&limit=10';
$json = file_get_contents($url);
$result = json_decode($json, true);
foreach ($result['videos'] as $video) {
echo $video['title'] . PHP_EOL;
}
?>
const response = await fetch('https://www.myvidster.com/api/v1.php?action=update_channel', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
user_id: 123,
token: 'YOUR_PRIVATE_API_KEY',
channel_id: 456,
name: 'Updated channel name',
description: 'Updated channel description'
})
});
const result = await response.json();
console.log(result);
import requests
payload = {
"user_id": 123,
"token": "YOUR_PRIVATE_API_KEY",
"collection_id": 456,
"name": "Updated collection name",
"description": "Updated collection description",
"thumb_num": 12
}
response = requests.post(
"https://www.myvidster.com/api/v1.php?action=update_collection",
json=payload
)
print(response.json())
curl "https://www.myvidster.com/api/v1.php?action=status"
curl -X POST "https://www.myvidster.com/api/v1.php?action=bookmark_video" \
-H "Content-Type: application/json" \
-d '{
"user_id": 123,
"token": "YOUR_PRIVATE_API_KEY",
"url": "https://example.com/video-page",
"channel_id": 456
}'
curl -X POST "https://www.myvidster.com/api/v1.php?action=remove_video" \
-H "Content-Type: application/json" \
-d '{
"user_id": 123,
"token": "YOUR_PRIVATE_API_KEY",
"video_id": 789
}'
{
"ok": true,
"message": "Video bookmarked.",
"video_id": 12345
}
{
"ok": false,
"error": {
"code": "INVALID_TOKEN",
"message": "Invalid API token"
}
}