BytePicks API Documentation
Overview
The BytePicks API provides programmatic access to our indexed video data. It returns JSON payloads containing video metadata, sorted by our quality scoring algorithm.
Response Schema
The response includes the following fields for each video:
- Channel Name (str)
- Channel ID (str)
- Channel Icon (str)
- Channel URL (str)
- Video URL (str)
- Video Title (str)
- Video ID (str)
- Video Publish Date (str)
- Video Thumbnail (str)
- Video Duration (str)
- Video Definition (str)
- Video Language (str)
- Video Caption (bool)
- Video Content Rating (bool)
- Video View Count (int)
- Video Like Count (int)
- Video Comment Count (int)
- Video Category ID (int)
Videos are sorted automatically by relevance and quality using our scoring algorithm and displayed in descending order.
Authentication
The API is public. No authentication or API keys are required.
Endpoints & Parameters
Endpoint :
https://bytepicks.com/api/request
Parameters :
-
time :
Specifies the time range for video selection between the following values :
- daily
- weekly
- monthly
- yearly
-> If the value is not provided, it will default to 'daily'
-
lang :
Specifies the language for video selection between the following ISO 639-1 standard values :
- EN (English)
- FR (French)
- ES (Spanish)
- RU (Russian)
- HI (Hindi)
-> If the value is not provided, it will default to 'EN'
-
top :
Specifies the number of videos to retrieve starting from the top. The value should be an int greater than 0
-> If the value is not provided, it will default to 25
Note : If the value is bigger then the number of videos it will just retrieve all of them
Ex : If top is 45 but there are only 21 videos it will retrieve all the 21 in said language in that time
Very Important:
All parameters are case sensitive and they should be written like in the example above.
If any error is detected it will return an error message.
Code Example
import requests
url = "https://bytepicks.com/api/request"
params = {
'time': 'daily',
'lang': 'EN',
'top': 30
}
response = requests.get(url, params)
if response.status_code == 200:
data = response.json()
# Process the response data as needed
print(data)
else:
print(f"Error: {response.status_code}")
const axios = require('axios');
const url = 'https://bytepicks.com/api/request';
const params = {
'time': 'daily',
'lang': 'EN',
'top': 30
};
axios.get(url, { params })
.then(response => {
// Process the response data as needed
console.log(response.data);
})
.catch(error => {
console.error(`Error: ${error.response.status}`);
});
require 'net/http'
require 'json'
url = URI.parse('https://bytepicks.com/api/request')
params = {
'time' => 'daily',
'lang' => 'EN',
'top' => 30
}
url.query = URI.encode_www_form(params)
response = Net::HTTP.get_response(url)
if response.code.to_i == 200
data = JSON.parse(response.body)
# Process the response data as needed
puts data
else
puts "Error: #{response.code}"
end
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
var url = "https://bytepicks.com/api/request";
var parameters = $"time=daily&lang=EN&top=30";
using (var client = new HttpClient())
{
var response = await client.GetAsync($"{url}?{parameters}");
if (response.IsSuccessStatusCode)
{
var responseData = await response.Content.ReadAsStringAsync();
// Process the response data as needed
Console.WriteLine(responseData);
}
else
{
Console.WriteLine($"Error: {response.StatusCode}");
}
}
}
}
Output Example
{
"Request": "The top 30 daily videos in EN",
"Date": "21/01/2024 17:59:04",
"Results": [
{
"ChannelName": "TechLinked",
"ChannelId": "UCeeFfhMcJa1kjtfZAGskOCA",
// (Additional Details About This Video)
},
{
"ChannelName": "Logically Answered",
"ChannelId": "UCZRoNJu1OszFqABP8AuJIuw",
// (Additional Details About This Video)
},
// (Remaining Videos)
]
}
Rate Limiting
We run on minimal infrastructure. Please cache responses where possible and keep request rates reasonable.
If you have any questions or need assistance, please refer to our contact page.