QuizBase vs Open Trivia DB — rozszerzenie OpenTDB o skalę, wielojęzyczność i powierzchnię developerską
Open Trivia DB to jedna z naszych baz źródłowych — katalog tworzony społecznościowo z 5 296 zweryfikowanymi angielskimi pytaniami na licencji CC-BY-SA. QuizBase łączy OpenTDB z 10 innymi otwartymi datasetami w ponad milion pytań, parytet EN + PL dziś (więcej języków na życzenie), 5-poziomową gradację trudności (`trivial` do `expert`), wielowarstwową taksonomię (kategorie, podkategorie, tagi, wyselekcjonowane topiki i regiony kulturowe) i powierzchnię developerską (OpenAPI 3.1, TypeScript SDK, serwer MCP z OAuth).
W skrócie
Liczba pytań
1.17M QuizBasevs 5.3k (Open Trivia DB)
Liczba języków
2 QuizBasevs 1 (Open Trivia DB)
Metoda gradacji trudności
5 levels (trivial → expert), LLM-calibrated per question QuizBasevs 3 levels (easy / medium / hard), metadata tag, no calibration (Open Trivia DB)
Gęstość taksonomii
24 categories · 30.8K+ subcategories · 81.7K+ tags · 2.2K+ curated topics · 190+ cultural regions QuizBasevs 24 flat categories, no subcategories, tags, topics, or regions (Open Trivia DB)
Domena tematyczna
General trivia (all domains) QuizBasevs General trivia (community-contributed) (Open Trivia DB)
Kiedy wybrać QuizBase
- Wolumen ma znaczenie — ponad milion pytań kontra 5 296 (200×+ większy katalog, scalony z 11 źródeł włącznie z OpenTDB)
- Gradacja trudności ma znaczenie — 5-poziomowa kalibrowana trudność per pytanie, od `trivial` do `expert`
- Potrzebujesz polskiego dziś (333 tys. PL na `?quality=high`) lub innych języków na żądanie bez prowadzenia własnego pipeline tłumaczeń
- Wielowarstwowa taksonomia ma znaczenie — kategorie + podkategorie + tagi + topici + regiony kulturowe, nie tylko 24 płaskie kategorie
- Powierzchnia developerska ma znaczenie — OpenAPI 3.1, TypeScript SDK na npm, serwer MCP z OAuth 2.1 dla Claude Desktop / Cursor / ChatGPT, headery rate-limit IETF, błędy RFC 9457, publiczna strona statusu
Treść i skala
| Wymiar | QuizBase | Open Trivia DB |
|---|---|---|
| Liczba pytań | 1 173 456 | 5296 |
| Liczba języków | 2 | 1 |
| Metoda gradacji trudności | 5 levels (trivial → expert), LLM-calibrated per question | 3 levels (easy / medium / hard), metadata tag, no calibration |
| Gęstość taksonomii | 24 categories · 30.8K+ subcategories · 81.7K+ tags · 2.2K+ curated topics · 190+ cultural regions | 24 flat categories, no subcategories, tags, topics, or regions |
| Domena tematyczna | General trivia (all domains) | General trivia (community-contributed) |
Atrybucja i licencje
| Wymiar | QuizBase | Open Trivia DB |
|---|---|---|
| Publiczny zrzut danych | CC-BY-SA dump (GitHub release, ~482k records) | Yes (CC-BY-SA via api.php with `amount=50` calls) |
Niezawodność
| Wymiar | QuizBase | Open Trivia DB |
|---|---|---|
| Strona statusu | https://quizbase.runriva.com/status | n/a |
Powierzchnia developerska
| Wymiar | QuizBase | Open Trivia DB |
|---|---|---|
| OpenAPI 3.1 spec | https://quizbase.runriva.com/openapi.json | n/a |
| TypeScript SDK | @quizbase/client (npm) | n/a |
| Transport MCP | Streamable HTTP (/mcp endpoint) | n/a |
Migracja z Open Trivia DB
// Before — Open Trivia DB
const response = await fetch('https://opentdb.com/api.php?amount=10');
const { results } = await response.json();
// results[0].question (HTML-encoded), results[0].correct_answer
// After — QuizBase
import { QuizBase } from '@quizbase/client';
const qb = new QuizBase({ apiKey: process.env.QUIZBASE_API_KEY! });
const { data } = await qb.questions.list({
limit: 10,
lang: 'en', // or 'pl', more on demand
quality: 'high', // surface the LLM-graded high-quality slice
difficulty: 'medium' // trivial | easy | medium | hard | expert
});
// data[0].question (plain text), data[0].correct_answer, data[0].difficulty