Video Search
curl --request GET \
--url https://scrapebadger.com/v1/naver/video \
--header 'X-API-Key: <x-api-key>'import requests
url = "https://scrapebadger.com/v1/naver/video"
headers = {"X-API-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<x-api-key>'}};
fetch('https://scrapebadger.com/v1/naver/video', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://scrapebadger.com/v1/naver/video",
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: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://scrapebadger.com/v1/naver/video"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scrapebadger.com/v1/naver/video")
.header("X-API-Key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scrapebadger.com/v1/naver/video")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"query": "<string>",
"page": 123,
"result_count": 123,
"results": [
{
"position": 123,
"title": "<string>",
"url": "<string>",
"duration": "<string>",
"channel": "<string>",
"channel_url": "<string>",
"channel_thumbnail_url": "<string>",
"source": "<string>",
"view_count": 123,
"thumbnail_url": "<string>",
"published": "<string>",
"published_at": "<string>"
}
]
}Search
Video Search
Search the Naver video vertical — 48 videos per page with duration, channel, view count and thumbnail.
GET
/
v1
/
naver
/
video
Video Search
curl --request GET \
--url https://scrapebadger.com/v1/naver/video \
--header 'X-API-Key: <x-api-key>'import requests
url = "https://scrapebadger.com/v1/naver/video"
headers = {"X-API-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<x-api-key>'}};
fetch('https://scrapebadger.com/v1/naver/video', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://scrapebadger.com/v1/naver/video",
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: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://scrapebadger.com/v1/naver/video"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scrapebadger.com/v1/naver/video")
.header("X-API-Key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scrapebadger.com/v1/naver/video")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"query": "<string>",
"page": 123,
"result_count": 123,
"results": [
{
"position": 123,
"title": "<string>",
"url": "<string>",
"duration": "<string>",
"channel": "<string>",
"channel_url": "<string>",
"channel_thumbnail_url": "<string>",
"source": "<string>",
"view_count": 123,
"thumbnail_url": "<string>",
"published": "<string>",
"published_at": "<string>"
}
]
}Search the Naver video vertical, which aggregates videos across YouTube, Naver TV and other sources. Each result carries the title and URL, duration, channel name and URL, view count, source and an absolute publish timestamp. Returns 48 videos per page.
Credits: 5
Authorization
string
required
Your ScrapeBadger API key.
Query Parameters
string
required
Search keywords.
integer
default:"1"
1-based result page. Each page returns up to 48 videos.
Response
string
integer
integer
VideoResult[]
Example
curl "https://scrapebadger.com/v1/naver/video?query=제주도+브이로그&page=1" \
-H "X-API-Key: YOUR_API_KEY"
const res = await fetch(
"https://scrapebadger.com/v1/naver/video?" +
new URLSearchParams({"query": "제주도 브이로그", "page": "1"}),
{ headers: { "X-API-Key": process.env.SCRAPEBADGER_API_KEY } },
);
const data = await res.json();
import requests
res = requests.get(
"https://scrapebadger.com/v1/naver/video",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"query": "제주도 브이로그", "page": "1"},
)
data = res.json()
Response
{
"query": "제주도 브이로그",
"page": 1,
"result_count": 48,
"results": [
{
"position": 1,
"title": "제주도 3박4일 브이로그",
"url": "https://tv.naver.com/v/12345",
"duration": "12:04",
"channel": "여행하는쩡",
"channel_url": "https://tv.naver.com/jjeong",
"source": "네이버TV",
"view_count": 48213,
"thumbnail_url": "https://video-phinf.example.net/12345.jpg",
"published": "2026.06.01.",
"published_at": "2026-06-01T00:00:00+09:00"
}
]
}
Errors
| Status | Meaning |
|---|---|
422 | Naver served a challenge instead of content — not billed. Retry; it succeeds. |
502 | Unexpected upstream failure — not billed. |

