How to scrape YouTube Search Hashtag with C#
Videos under a YouTube hashtag, with views and length. This tutorial gets it with a short C# program and the YouTube Search Hashtag 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 C#
dotnet new console -o scrape && cd scrape3. Write the code
Save this as Program.cs.
using System.Text.Json;
var http = new HttpClient();
http.DefaultRequestHeaders.Add("x-api-key", Environment.GetEnvironmentVariable("SCRAPEIO_API_KEY"));
var query = new Dictionary<string, string> { ["hashtag"] = "travel" };
string Url() => "https://scrapeio.com/v1/youtube/search/hashtag" + "?" + string.Join("&", query.Select(p => $"{p.Key}={Uri.EscapeDataString(p.Value)}"));
var items = new List<JsonElement>();
while (true)
{
var json = await http.GetStringAsync(Url());
var data = JsonDocument.Parse(json).RootElement.GetProperty("data");
if (data.TryGetProperty("items", out var rows)) items.AddRange(rows.EnumerateArray().Select(r => r.Clone()));
var more = data.TryGetProperty("has_more", out var hm) && hm.ValueKind == JsonValueKind.True;
var cursor = data.TryGetProperty("cursor", out var c) && c.ValueKind == JsonValueKind.String ? c.GetString() : null;
if (!more || string.IsNullOrEmpty(cursor) || items.Count >= 100) break;
query["cursor"] = cursor;
}
Console.WriteLine($"{items.Count} items");
Console.WriteLine(JsonSerializer.Serialize(items.Take(3), new JsonSerializerOptions { WriteIndented = true }));The loop follows data.cursor until data.has_more is false, and stops at 100 items. Each page is one call, so it costs 1 credit.
4. Run it
dotnet runThe 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 |
|---|---|---|
hashtag (required) | string | Hashtag, with or without #. |
cursor | string | Cursor from the previous page's data.cursor. |
continuationToken | string | Same as cursor, under ScrapeCreators' name. |
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 · Go · Rust · Java · 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_search_hashtag tool for you.
100 free credits, no card. Credits never expire.
Get API keyMore YouTube tutorials in C#
- How to scrape YouTube Channel with C#
- How to scrape YouTube Channel Videos with C#
- How to scrape YouTube Video with C#
- How to scrape YouTube Comments with C#
- How to scrape YouTube Search with C#
- How to scrape YouTube Download with C#
- How to scrape YouTube Transcript with C#
- How to scrape YouTube Playlist with C#
- How to scrape YouTube Channel Playlists with C#
- How to scrape YouTube Channel Shorts with C#
- How to scrape YouTube Channel Lives with C#
- How to scrape YouTube Comment Replies with C#
- How to scrape YouTube Search Typeahead with C#
- How to scrape YouTube Community Posts with C#
- How to scrape YouTube Community Post with C#
- How to scrape YouTube Channel Search with C#
- How to scrape YouTube Shorts Trending with C#
- How to scrape YouTube Video Sponsors with C#