How to scrape YouTube Video with Go
One YouTube video or Short by URL: views, likes, comments, duration, tags. This tutorial gets it with a short Go program and the YouTube Video API. Each successful call costs 1 credit; errors and not-found answers are free.
1. Get an API key
Sign in to get a key and 100 free credits, no card. Then put the key in an environment variable so it stays out of your code:
export SCRAPEIO_API_KEY="your_key_here"2. Set up Go
go mod init scrape3. Write the code
Save this as main.go. Replace PASTE_URL_HERE with a real url.
package main
import (
"encoding/json"
"fmt"
"net/http"
"net/url"
"os"
)
func main() {
params := url.Values{}
params.Set("url", "PASTE_URL_HERE")
req, _ := http.NewRequest("GET", "https://scrapeio.com/v1/youtube/video"+"?"+params.Encode(), nil)
req.Header.Set("x-api-key", os.Getenv("SCRAPEIO_API_KEY"))
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
if res.StatusCode != 200 {
panic(fmt.Sprintf("HTTP %d", res.StatusCode))
}
defer res.Body.Close()
var body map[string]any
json.NewDecoder(res.Body).Decode(&body)
out, _ := json.MarshalIndent(body["data"], "", " ")
fmt.Println(string(out))
}4. Run it
go run main.goThe response has the same envelope on every endpoint: success, cached, credits_used, credits_remaining and data. Shared fields such as handle, followers, plays, likes and created_at have the same names on every platform.
Parameters
| Name | Type | Description |
|---|---|---|
url (required) | string | YouTube video or Short URL. |
Errors and what you pay
| Status | Meaning | Charged |
|---|---|---|
200 | Success | Yes, unless cached |
400 | A parameter is missing or wrong | No |
401 | The key is missing or invalid | No |
402 | Not enough credits | No |
403 | The account or post is private | No |
404 | Not found on the platform | No |
429 | More than 300 requests a minute | No |
502 | Every source is down; retry shortly | No |
Same endpoint in other languages
Python · Node.js · JavaScript · TypeScript · Rust · Java · C# · PHP · Ruby · Kotlin · Swift · R
Prefer no code?
Connect the MCP server to Claude Code, Cursor or Codex and ask in plain English. The agent uses the youtube_video tool for you.
100 free credits, no card. Credits never expire.
Get API keyMore YouTube tutorials in Go
- How to scrape YouTube Channel with Go
- How to scrape YouTube Channel Videos with Go
- How to scrape YouTube Comments with Go
- How to scrape YouTube Search with Go
- How to scrape YouTube Download with Go
- How to scrape YouTube Transcript with Go
- How to scrape YouTube Playlist with Go
- How to scrape YouTube Channel Playlists with Go
- How to scrape YouTube Channel Shorts with Go
- How to scrape YouTube Channel Lives with Go
- How to scrape YouTube Comment Replies with Go
- How to scrape YouTube Search Typeahead with Go
- How to scrape YouTube Community Posts with Go
- How to scrape YouTube Community Post with Go
- How to scrape YouTube Channel Search with Go
- How to scrape YouTube Search Hashtag with Go
- How to scrape YouTube Shorts Trending with Go
- How to scrape YouTube Video Sponsors with Go