collect the videos you love
collect | share | explore

MyVidster API Beta

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.

Authentication

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
FieldRequiredDescription
user_idYesYour MyVidster numeric user id.
tokenYesYour private API key from MyVidster user options.

Read Endpoints

Status

GET /api/v1.php?action=status

Single Video

GET /api/v1.php?action=video&id=12345

Recent/Search Videos

GET /api/v1.php?action=videos&q=music&limit=25

User Profile

GET /api/v1.php?action=user&username=demo

User Videos

GET /api/v1.php?action=user_videos&username=demo&sort=recent

ParameterApplies ToDescription
limitvideos, user_videosNumber of results, from 1 to 100. Default is 25.
pagevideos, user_videosPage number. Default is 1.
qvideosOptional text search across title, description, tags, and keywords.
sortuser_videosOptional sort order. Use recent, oldest, most_viewed, least_viewed, title_asc, or title_desc. Default is recent.
user_id + tokenvideo, user_videosOptional for reads. When provided by the owner, private videos are included.

Private Parameter

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.

ValueMeaningAPI Behavior
0Family friendly public videoShown in public video reads.
1Private owner-only videoShown only to the authenticated owner on video and user_videos reads.
2Adult public videoShown in public video reads.
3Deleted or disabled videoNot 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.

Write Endpoints

All write endpoints are POST requests. Omitted metadata fields keep their current value when updating existing content.

ActionRequired FieldsDescription
bookmark_videouser_id, token, url, channel_idBookmark a new video by providing the URL to the video's web page.
update_videouser_id, token, video_idUpdate a video you own.
remove_videouser_id, token, video_idRemove a video you own. This soft-deletes the bookmark and removes it from public API reads.
update_channeluser_id, token, channel_idUpdate a channel you own.
update_collectionuser_id, token, collection_idUpdate a collection you own.

PHP Examples

Bookmark a New Video

<?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'];
?>

Update Video Metadata

<?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));
?>

Remove a Video

<?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));
?>

Read Public Videos

<?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;
}
?>

JavaScript Example

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);

Python Example

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 Examples

Get API Status

curl "https://www.myvidster.com/api/v1.php?action=status"

Bookmark a Video

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
  }'

Remove a Video

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
  }'

Common Response Format

Success

{
  "ok": true,
  "message": "Video bookmarked.",
  "video_id": 12345
}

Error

{
  "ok": false,
  "error": {
    "code": "INVALID_TOKEN",
    "message": "Invalid API token"
  }
}