YouTube Video Info
Get comprehensive video metadata from YouTube including views, likes, description, and channel info.
Run this endpoint
YouTube Video Info
1 credit/request
Endpoint
GET
Get API key
https://scrappa.co/api/youtube/video?video_id=dQw4w9WgXcQ
Parameters
video_id
string
Required
YouTube video ID (alias: videoId)
Example value
dQw4w9WgXcQ
videoId
string
Required
YouTube video ID (alias: video_id)
Example value
example
Request Examples
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://scrappa.co/api/youtube/video?video_id=dQw4w9WgXcQ",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: YOUR_API_KEY_HERE"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
<?php
use Illuminate\Support\Facades\Http;
$response = Http::timeout(30)
->withHeaders(['x-api-key' => 'YOUR_API_KEY_HERE'])
->get('https://scrappa.co/api/youtube/video?video_id=dQw4w9WgXcQ');
if ($response->successful()) {
echo $response->body();
} else {
echo "Error: " . $response->status();
}
const options = {
method: 'GET',
headers: {
'x-api-key': 'YOUR_API_KEY_HERE'
}
};
fetch('https://scrappa.co/api/youtube/video?video_id=dQw4w9WgXcQ', options)
.then(response => {
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return response.text();
})
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
const axios = require('axios');
const options = {
method: 'GET',
url: 'https://scrappa.co/api/youtube/video?video_id=dQw4w9WgXcQ',
headers: {
x-api-key: 'YOUR_API_KEY_HERE',
}
};
try {
const response = await axios(options);
console.log(response.data);
} catch (error) {
console.error('Error:', error.message);
}
require 'net/http'
require 'uri'
uri = URI.parse("https://scrappa.co/api/youtube/video?video_id=dQw4w9WgXcQ")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == 'https'
request = Net::HTTP::Get.new(uri.request_uri)
request['x-api-key'] = 'YOUR_API_KEY_HERE'
begin
response = http.request(request)
puts response.body
rescue => e
puts "Error: #{e.message}"
end
import http.client
import json
conn = http.client.HTTPSConnection("scrappa.co")
headers = {
'x-api-key': 'YOUR_API_KEY_HERE',
}
try:
conn.request("GET", "/api/youtube/video?video_id=dQw4w9WgXcQ", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
except Exception as e:
print(f"Error: {e}")
finally:
conn.close()
import requests
headers = {
'x-api-key': 'YOUR_API_KEY_HERE',
}
try:
response = requests.get('https://scrappa.co/api/youtube/video?video_id=dQw4w9WgXcQ', headers=headers)
response.raise_for_status()
print(response.text)
except requests.exceptions.RequestException as e:
print(f"Error: {e}")
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;
public class ApiExample {
public static void main(String[] args) {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://scrappa.co/api/youtube/video?video_id=dQw4w9WgXcQ")
.addHeader("x-api-key", "YOUR_API_KEY_HERE")
.build();
try (Response response = client.newCall(request).execute()) {
if (response.isSuccessful()) {
System.out.println(response.body().string());
} else {
System.out.println("Error: " + response.code());
}
} catch (IOException e) {
System.out.println("Error: " + e.getMessage());
}
}
}
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
client := &http.Client{}
req, err := http.NewRequest("GET", "https://scrappa.co/api/youtube/video?video_id=dQw4w9WgXcQ", nil)
if err != nil {
fmt.Println("Error creating request:", err)
return
}
req.Header.Set("x-api-key", "YOUR_API_KEY_HERE")
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error making request:", err)
return
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println("Error reading response:", err)
return
}
fmt.Println(string(body))
}
#!/bin/bash
curl -X GET \
-H "x-api-key: YOUR_API_KEY_HERE" \
"https://scrappa.co/api/youtube/video?video_id=dQw4w9WgXcQ"
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", "YOUR_API_KEY_HERE");
try
{
var response = await client.SendAsync(new HttpRequestMessage(HttpMethod.Get, "https://scrappa.co/api/youtube/video?video_id=dQw4w9WgXcQ"));
var content = await response.Content.ReadAsStringAsync();
Console.WriteLine(content);
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
}
import axios from 'axios';
async function run(): Promise<void> {
try {
const response = await axios({
method: 'GET',
url: 'https://scrappa.co/api/youtube/video?video_id=dQw4w9WgXcQ',
headers: {
'x-api-key': 'YOUR_API_KEY_HERE',
},
});
console.log(response.data);
} catch (error) {
console.error('Error:', error);
}
}
void run();
use reqwest::Client;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = Client::new();
let response = client
.get("https://scrappa.co/api/youtube/video?video_id=dQw4w9WgXcQ")
.header("x-api-key", "YOUR_API_KEY_HERE")
.send()
.await?;
println!("{}", response.text().await?);
Ok(())
}
Response Schema
JSON Response
200 OK
{
"id": "dQw4w9WgXcQ",
"videoId": "dQw4w9WgXcQ",
"title": "Rick Astley - Never Gonna Give You Up (Official Video)",
"description": "The official video for Never Gonna Give You Up by Rick Astley.",
"thumbnail": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg",
"duration": "3:33",
"viewCount": "1,741,182,393 views",
"shortViewCount": null,
"likeCount": 18788542,
"publishDate": "Oct 25, 2009",
"uploadDate": "16 years ago",
"channel": {
"id": "UCuAXFkgsw1L7xaCfnd5JJOw",
"name": "Rick Astley",
"thumbnail": "https://yt3.ggpht.com/example.jpg",
"url": "https://www.youtube.com/@RickAstleyYT",
"subscriberCount": "4.45M subscribers",
"isVerified": false,
"isVerifiedArtist": true,
"badges": [
{
"type": "BADGE_STYLE_TYPE_VERIFIED_ARTIST",
"tooltip": "Official Artist Channel"
}
]
},
"hashtags": [
"#RickAstley",
"#NeverGonnaGiveYouUp"
],
"keywords": [
"rick astley",
"Never Gonna Give You Up"
],
"category": "Music",
"isLiveContent": false,
"isLive": false,
"isUnlisted": false,
"isFamilySafe": true,
"isPremium": false,
"isPrivate": false,
"isAgeRestricted": false,
"isCrawlable": true,
"isUpcoming": false,
"isPostLiveDvr": false,
"isLiveDvrEnabled": false,
"isLowLatencyLiveStream": false,
"hasLivechat": false,
"chapters": [],
"captions": [
{
"language": "en",
"name": "English",
"isAutoGenerated": false,
"isTranslatable": true
}
],
"embed": {
"iframeUrl": "https://www.youtube.com/embed/dQw4w9WgXcQ",
"width": 1280,
"height": 720,
"isEmbeddable": true
},
"relatedVideos": [
{
"id": "yPYZpwSpKmA",
"title": "Rick Astley - Together Forever",
"thumbnail": "https://i.ytimg.com/vi/yPYZpwSpKmA/hqdefault.jpg",
"duration": "3:24",
"viewCount": "196M views",
"publishedTime": "16 years ago",
"channel": {
"name": "Rick Astley",
"verified": false
},
"badges": [],
"isLive": false
}
],
"storyboards": [
{
"templateUrl": "https://i.ytimg.com/sb/dQw4w9WgXcQ/storyboard3_L0/default.jpg",
"thumbnailWidth": 48,
"thumbnailHeight": 27,
"thumbnailCount": 100,
"columns": 10,
"rows": 10
}
],
"regionInfo": {
"availableCountries": null,
"blockedCountries": null,
"isPlayable": true,
"status": "OK",
"reason": null,
"embeddable": true
},
"comments": {
"count": "1.2M comments",
"teaser": "Great song!"
},
"playabilityStatus": {
"status": "OK",
"reason": null,
"embeddable": true,
"audioOnlyPlayability": null
},
"annotations": [
{
"id": "5dad8f5d-0000-20c2-8451-883d24f8e7cc",
"type": "PlayerAnnotationsExpanded",
"allowSwipeDismiss": true,
"featuredChannel": {
"id": null,
"name": null,
"thumbnail": null
}
}
],
"autoplay": {
"countDownSecs": 5,
"sets": 1
},
"cards": [
{
"id": null,
"title": "",
"subtitle": "",
"thumbnail": null,
"url": null,
"type": "Card",
"endpoint": null
}
],
"endScreen": {
"startMs": 201451,
"elements": [
{
"id": "720b1b77-5167-4d00-a42e-b8e715efaef1",
"type": "EndscreenElement",
"style": "CHANNEL",
"title": "Rick Astley",
"thumbnail": "https://yt3.ggpht.com/vewxKdtll-rntHAMDPY_Qa6hPac3-J2sCFFUwvGSSR0i7hB4g5rNfF39lCEcjGvsYI0RWx7V1A=s400-c-k-c0x00ffffff-no-rj",
"endpoint": {
"type": "NavigationEndpoint",
"payload": {
"browseId": "UCuAXFkgsw1L7xaCfnd5JJOw"
}
},
"metadata": {
"text": "2026 UK & Ireland Reflection Tour\nTickets are on sale now.",
"rtl": false
}
}
]
},
"hasStreamingData": true,
"license": null,
"merchandise": null,
"playerConfig": {
"audioConfig": {
"loudnessDb": 0.9899998,
"perceptualLoudnessDb": -13.01,
"enablePerFormatLoudness": true
},
"maxBitrate": "0"
},
"playerOverlays": {
"endScreen": {
"title": "You may also like...",
"results": [
{
"id": "yPYZpwSpKmA",
"title": "Rick Astley - Together Forever (Official Video) [4K Remaster]",
"thumbnail": "https://i.ytimg.com/vi/yPYZpwSpKmA/hqdefault.jpg",
"endpoint": {
"type": "NavigationEndpoint",
"name": "watchEndpoint",
"payload": {
"videoId": "yPYZpwSpKmA",
"playlistId": "RDyPYZpwSpKmA"
},
"metadata": {
"url": "/watch?v=yPYZpwSpKmA&list=RDyPYZpwSpKmA&start_radio=1",
"page_type": "WEB_PAGE_TYPE_WATCH",
"api_url": "/player"
}
}
}
]
},
"autoplay": {
"title": "Up next",
"videoId": "VegzlNRGSvI",
"videoTitle": "Rick Astley megamix",
"shortViewCount": "4.8M views",
"published": "8 years ago",
"countDownSecsForFullscreen": 3,
"preferImmediateRedirect": false,
"author": {
"id": "UCQWt05fNgL1uCvufSqXG3OQ",
"name": "Gary Douglas",
"thumbnail": null
}
},
"shareButton": {
"tooltip": "Share",
"iconType": "SHARE",
"isDisabled": false
},
"decoratedPlayerBar": {
"markersMap": []
}
},
"streamingDataExpires": [],
"topComments": false
}
✨
Generate Code with AI
Copy a ready-made prompt with all the endpoint details, parameters, and example responses. Paste it into ChatGPT, Claude, or any AI assistant to instantly generate working code.