VOOZH about

URL: https://apify.com/viralanalyzer/github-trending-by-topic

⇱ GitHub Trending & Topic Scraper · Apify


👁 GitHub Trending & Topic Scraper avatar

GitHub Trending & Topic Scraper

Pricing

Pay per usage

Go to Apify Store

GitHub Trending & Topic Scraper

Scrapes GitHub trending repositories by language and date, or searches popular repositories by technical topic (LLM, AI, Agents) with high-speed hybrid extraction.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

👁 viralanalyzer

viralanalyzer

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 days ago

Last modified

Categories

Share

🚀 GitHub Trending & Topic Scraper — Discover Hot Repos by Topic, Language & Time Window

🔗 View on Apify Store | 🇺🇸 English | 🇧🇷 Português

Extract trending and popular GitHub repositories in two modes: scrape the official GitHub Trending charts (daily / weekly / monthly, optionally filtered by programming language), or search popular repositories by topic / technology keyword (e.g. llm, agents, machine-learning). Pure HTTP — no browser, no GitHub token, and no OAuth required.

✨ Features

  • 📈 Official Trending charts — Scrape github.com/trending for daily, weekly, or monthly hot repos
  • 🔤 Language filter — Narrow trending to a single language (e.g. python, javascript, go, rust)
  • 🏷️ Topic / keyword search — Find the most-starred repos for any technology topic (e.g. llm, generative-ai, agents)
  • 🔁 API + HTML fallback — Topic mode tries the GitHub Search API first, then auto-falls back to HTML scraping if the API is rate-limited
  • Star & fork counts — Total stars, forks, and (in trending mode) stars gained during the selected period
  • Pure HTTP — Powered by got-scraping (dynamic browser-header fingerprinting) + Cheerio; no browser instance needed
  • 🔒 100% anonymous — No GitHub login, personal access token, or OAuth credentials required
  • 🛡️ Diagnostic guard (UAG-SG) — On a zero-result run, writes the raw HTML to the Key-Value Store and returns a remediation guide instead of silently succeeding
  • 🌍 Proxy-ready — Optional proxy configuration to rotate IPs and avoid GitHub rate limits

📥 Input

ParameterTypeRequiredDefaultDescription
modestring"trending""trending" (official charts) or "topic" (search by keyword)
languagestring""Language filter for trending charts (e.g. python, go). Only used in trending mode
sincestring"daily"Trending period: daily, weekly, monthly. Only used in trending mode
topicstring"llm"Technology topic / keyword to search (e.g. llm, agents). Only used in topic mode
maxItemsinteger25Maximum repositories to scrape (min 5, max 200)
proxyConfigurationobject{ "useApifyProxy": true }Proxy settings to rotate IPs and avoid rate limits

Input Examples

// Trending mode
{"mode":"trending","language":"python","since":"weekly","maxItems":25,"proxyConfiguration":{"useApifyProxy":true}}
// Topic mode
{"mode":"topic","topic":"llm","maxItems":50,"proxyConfiguration":{"useApifyProxy":true}}

📤 Output

Each repository is pushed as one dataset item. Field availability depends on the mode and code path used.

FieldTypeDescription
repoNamestringRepository name
ownerstringOwner / organization login
urlstringFull repository URL
descriptionstringRepository description
languagestringPrimary language. Trending → repo language (fallback "Markdown/Other"); Topic API → repo language (fallback "Other"); Topic HTML fallback → literal "GitHub Topic"
starsnumberTotal star count
forksnumberTotal fork count (0 in the topic HTML fallback)
starsAddednumberStars gained during the selected period (trending mode only)
scrapedAtstringISO 8601 timestamp

Output Example

{
"repoName":"awesome-llm-apps",
"owner":"Shubhamsaboo",
"url":"https://github.com/Shubhamsaboo/awesome-llm-apps",
"description":"Collection of awesome LLM apps with AI Agents and RAG.",
"language":"Python",
"stars":38214,
"forks":4127,
"starsAdded":612,
"scrapedAt":"2026-06-06T12:00:00.000Z"
}

In topic mode, starsAdded is omitted; the topic HTML fallback also sets forks to 0 and language to "GitHub Topic".

Zero-Result Diagnostic Output

If a run extracts no repositories, the actor does not push an empty success. It saves the raw HTML to the Key-Value Store (key debug-github-html) and pushes a single diagnostic record with setup_status: "DIAGNOSTIC_GUIDE", a message explaining likely causes (IP rate-limited, language not trending today, or topic keyword with no match), and a remediation_steps array (enable a proxy, verify the language value, try a generic topic, inspect the saved HTML).

📋 Use Cases

  • Tech trend monitoring — Track which repos are exploding on the daily/weekly/monthly charts
  • Topic discovery — Find the top-starred projects for any keyword (llm, agents, rag, cli)
  • Content & newsletters — Auto-source "trending this week" lists for blogs and digests
  • Investment / scouting signals — Use starsAdded momentum to detect fast-rising projects
  • Dataset building — Collect repository metadata for analysis, dashboards, or ML features

❓ FAQ

Q: What is the difference between the two modes? A: trending scrapes the official github.com/trending charts (supports a language filter and a since time window: daily/weekly/monthly). topic searches the most-starred repositories for a keyword via the GitHub Search API, with an HTML fallback to github.com/topics/<keyword> if the API is unavailable.

Q: Do I need a GitHub API token or login? A: No. The actor runs 100% anonymously — no OAuth, personal access token, or account is required. Topic mode uses GitHub's public search endpoint with no authentication, and because unauthenticated requests are rate-limited, it automatically falls back to HTML scraping when the limit is hit.

Q: Why is starsAdded missing in topic mode, and why does language sometimes say "GitHub Topic"? A: "Stars gained during the period" only exists on the official Trending charts, so starsAdded is trending-only. In the topic HTML fallback the per-repo language is not reliably available, so language is set to the literal "GitHub Topic"; in trending mode, repos with no detected language (e.g. docs-only) fall back to "Markdown/Other".

Q: My run returned 0 items — what happened? A: GitHub may have rate-limited your IP, the language might not be trending today, or the topic keyword may not match any repository. The actor saves the raw HTML to the debug-github-html Key-Value Store key and returns a remediation guide. Enabling proxyConfiguration usually resolves rate-limit issues.

Q: How many repositories can I get per run? A: Between 5 and 200 (maxItems). Topic API mode caps the page size at 100 per the GitHub Search API.

💰 Pricing

This actor uses Pay-Per-Event (PPE) pricing with a single billable event:

EventWhen it fires
repo-scrapedOnce per repository successfully extracted and pushed

You are charged only for repositories actually returned — diagnostic (zero-result) runs do not bill the repo-scraped event, and the actor owner's own runs skip billing automatically. For current per-event rates, see the live pricing on the actor page: apify.com/viralanalyzer/github-trending-by-topic.

🔗 Related Actors

📝 Changelog

v1.0 (Current)

  • ✅ Dual-mode extraction: official Trending charts + topic/keyword search
  • ✅ Language filter and daily/weekly/monthly time windows for trending
  • ✅ GitHub Search API in topic mode with automatic HTML fallback
  • ✅ Stars, forks, and period stars-added (trending) extraction
  • ✅ Pure HTTP via got-scraping + Cheerio (no browser, no token)
  • ✅ Universal Autocheck Guard (UAG-SG): zero-result diagnostics + raw HTML capture
  • ✅ Proxy support to avoid GitHub rate limits
  • ✅ PPE billing via repo-scraped with owner-skip

🚀 GitHub Trending & Topic Scraper — Descubra Repositórios em Alta por Tópico, Linguagem & Período

🇺🇸 English | 🇧🇷 Português

Extraia repositórios do GitHub em alta e populares em dois modos: raspe as listas oficiais de Trending do GitHub (diário / semanal / mensal, opcionalmente filtrado por linguagem), ou busque repositórios populares por tópico / palavra-chave de tecnologia (ex: llm, agents, machine-learning). HTTP puro — sem navegador, sem token do GitHub e sem OAuth.

✨ Funcionalidades

  • 📈 Listas oficiais de Trending — Raspe github.com/trending para repos em alta diário, semanal ou mensal
  • 🔤 Filtro por linguagem — Restrinja o trending a uma única linguagem (ex: python, javascript, go, rust)
  • 🏷️ Busca por tópico / palavra-chave — Encontre os repos mais estrelados para qualquer tópico de tecnologia (ex: llm, generative-ai, agents)
  • 🔁 API + fallback HTML — O modo tópico tenta a API de Busca do GitHub primeiro e, se houver rate limit, cai automaticamente para scraping HTML
  • Contagem de estrelas & forks — Total de estrelas, forks e (no modo trending) estrelas ganhas no período selecionado
  • HTTP puro — Usa got-scraping (fingerprinting dinâmico de cabeçalhos de navegador) + Cheerio; sem instância de navegador
  • 🔒 100% anônimo — Sem login, token de acesso pessoal ou credenciais OAuth do GitHub
  • 🛡️ Guard de diagnóstico (UAG-SG) — Em runs com zero resultados, salva o HTML bruto no Key-Value Store e retorna um guia de remediação em vez de "suceder" vazio
  • 🌍 Pronto para proxy — Configuração de proxy opcional para rotacionar IPs e evitar rate limits do GitHub

📥 Entrada

ParâmetroTipoObrigatórioPadrãoDescrição
modestring"trending""trending" (listas oficiais) ou "topic" (busca por palavra-chave)
languagestring""Filtro de linguagem para o trending (ex: python, go). Usado apenas no modo trending
sincestring"daily"Período do trending: daily, weekly, monthly. Usado apenas no modo trending
topicstring"llm"Tópico / palavra-chave de tecnologia a buscar (ex: llm, agents). Usado apenas no modo topic
maxItemsinteiro25Máximo de repositórios a raspar (mín. 5, máx. 200)
proxyConfigurationobjeto{ "useApifyProxy": true }Configuração de proxy para rotacionar IPs e evitar rate limits

Exemplos de Entrada

// Modo trending
{"mode":"trending","language":"python","since":"weekly","maxItems":25,"proxyConfiguration":{"useApifyProxy":true}}
// Modo tópico
{"mode":"topic","topic":"llm","maxItems":50,"proxyConfiguration":{"useApifyProxy":true}}

📤 Saída

Cada repositório é enviado como um item do dataset. A disponibilidade dos campos depende do modo e do caminho de código usado.

CampoTipoDescrição
repoNamestringNome do repositório
ownerstringLogin do dono / organização
urlstringURL completa do repositório
descriptionstringDescrição do repositório
languagestringLinguagem principal. Trending → linguagem do repo (fallback "Markdown/Other"); Tópico API → linguagem do repo (fallback "Other"); Tópico HTML → literal "GitHub Topic"
starsnúmeroTotal de estrelas
forksnúmeroTotal de forks (0 no fallback HTML do tópico)
starsAddednúmeroEstrelas ganhas no período selecionado (apenas modo trending)
scrapedAtstringTimestamp ISO 8601

Exemplo de Saída

{
"repoName":"awesome-llm-apps",
"owner":"Shubhamsaboo",
"url":"https://github.com/Shubhamsaboo/awesome-llm-apps",
"description":"Collection of awesome LLM apps with AI Agents and RAG.",
"language":"Python",
"stars":38214,
"forks":4127,
"starsAdded":612,
"scrapedAt":"2026-06-06T12:00:00.000Z"
}

No modo tópico, starsAdded é omitido; o fallback HTML do tópico também define forks como 0 e language como "GitHub Topic".

Saída de Diagnóstico (Zero Resultados)

Se um run não extrair nenhum repositório, o actor não envia um sucesso vazio. Ele salva o HTML bruto no Key-Value Store (chave debug-github-html) e envia um único registro de diagnóstico com setup_status: "DIAGNOSTIC_GUIDE", uma message explicando as causas prováveis (IP com rate limit, linguagem não está em alta hoje, ou palavra-chave sem correspondência) e um array remediation_steps (ativar proxy, verificar o valor da linguagem, tentar um tópico genérico, inspecionar o HTML salvo).

📋 Casos de Uso

  • Monitoramento de tendências — Acompanhe quais repos estão explodindo nas listas diária/semanal/mensal
  • Descoberta por tópico — Encontre os projetos mais estrelados para qualquer palavra-chave (llm, agents, rag, cli)
  • Conteúdo & newsletters — Gere listas "em alta esta semana" para blogs e digests
  • Sinais de scouting / investimento — Use o momentum de starsAdded para detectar projetos em rápida ascensão
  • Construção de datasets — Colete metadados de repositórios para análise, dashboards ou features de ML

❓ Perguntas Frequentes

P: Qual a diferença entre os dois modos? R: trending raspa as listas oficiais github.com/trending (suporta filtro language e janela de tempo since: diário/semanal/mensal). topic busca os repositórios mais estrelados para uma palavra-chave via API de Busca do GitHub, com fallback HTML para github.com/topics/<palavra-chave> se a API estiver indisponível.

P: Preciso de um token de API ou login do GitHub? R: Não. O actor roda 100% de forma anônima — sem OAuth, token de acesso pessoal ou conta. O modo tópico usa o endpoint público de busca do GitHub sem autenticação e, como requisições sem autenticação têm rate limit, ele cai automaticamente para scraping HTML quando o limite é atingido.

P: Por que starsAdded não aparece no modo tópico, e por que language às vezes mostra "GitHub Topic"? R: "Estrelas ganhas no período" só existe nas listas oficiais de Trending, então starsAdded é exclusivo do trending. No fallback HTML do tópico a linguagem por repo não está disponível de forma confiável, então language recebe o literal "GitHub Topic"; no modo trending, repos sem linguagem detectada (ex: só docs) recebem o fallback "Markdown/Other".

P: Meu run retornou 0 itens — o que aconteceu? R: O GitHub pode ter aplicado rate limit ao seu IP, a linguagem pode não estar em alta hoje, ou a palavra-chave pode não corresponder a nenhum repositório. O actor salva o HTML bruto na chave debug-github-html do Key-Value Store e retorna um guia de remediação. Ativar o proxyConfiguration geralmente resolve problemas de rate limit.

P: Quantos repositórios consigo por run? R: Entre 5 e 200 (maxItems). O modo tópico via API limita o tamanho da página a 100, conforme a API de Busca do GitHub.

💰 Preços

Este actor usa precificação Pay-Per-Event (PPE) com um único evento cobrável:

EventoQuando dispara
repo-scrapedUma vez por repositório extraído e enviado com sucesso

Você é cobrado apenas pelos repositórios realmente retornados — runs de diagnóstico (zero resultados) não cobram o evento repo-scraped, e os runs do próprio dono do actor pulam a cobrança automaticamente. Para os valores por evento vigentes, veja o preço ao vivo na página do actor: apify.com/viralanalyzer/github-trending-by-topic.

🔗 Actors Relacionados

📝 Changelog

v1.0 (Atual)

  • ✅ Extração dual-mode: listas oficiais de Trending + busca por tópico/palavra-chave
  • ✅ Filtro por linguagem e janelas diário/semanal/mensal para trending
  • ✅ API de Busca do GitHub no modo tópico com fallback HTML automático
  • ✅ Extração de estrelas, forks e estrelas-ganhas-no-período (trending)
  • ✅ HTTP puro via got-scraping + Cheerio (sem navegador, sem token)
  • ✅ Universal Autocheck Guard (UAG-SG): diagnóstico de zero resultados + captura de HTML bruto
  • ✅ Suporte a proxy para evitar rate limits do GitHub
  • ✅ Cobrança PPE via repo-scraped com owner-skip

You might also like

GitHub Trending Scraper

uxinfra/github-trending-scraper

Scrapes trending repositories from GitHub with real-time data

GitHub Trending Repositories Scraper

codingfrontend/github-trending-repositories-scraper

Scrape trending repositories from GitHub Trending. Extracts repo name, owner, description, stars, forks, language, contributors, and current period star gains.

👁 User avatar

codingfrontend

2

Github Trending Repositories / Developers

saswave/github-trending-repositories-developers

From a Github Trending category, extract all related informations about repositories or developers trending date range in Daily / Weekly / Monthly. With filters based on language spoken, code language, sponsorable status and date range

GitHub Trending Scraper

plantane/github-trending-scraper

Scrape trending repositories and developers from GitHub. Filter by language, time period, and spoken language. Get stars, forks, descriptions, and contributors.