Wikidata Transmedia Collaboration Explorer
WdTmCollab is a tool which leverages Wikidata's structured film and television data to analyze their partnerships, identifying frequent collaborators and shared projects while extending insights to directors and producers for a comprehensive view of industry dynamics.
This tool visualizes connections in the film industry using data from Wikidata. It helps users explore:
- Actor Collaborations: Who works with whom frequently?
- Shared Productions: Which movies/shows feature specific pairings?
- Industry Dynamics: Insights into directors and producers.
Deployed Application: https://wdtmcollab.toolforge.org
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Data Visualization: D3.js
- State Management: TanStack Query
- Testing: Playwright
Follow these instructions to set up the project locally.
- Node.js (v20 or higher recommended)
- npm, yarn, pnpm, or bun
-
Clone the repository:
git clone https://gerrit.wikimedia.org/r/admin/repos/labs/tools/WdTmCollab cd WdTmCollab -
Install dependencies:
npm install
Start the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun devOpen http://localhost:3000 with your browser to see the result.
The WdTmCollab API provides endpoints for accessing Wikidata film and television data.
https://wdtmcollab-api.toolforge.org
All API requests should include the following headers:
{
"Content-Type": "application/json",
"Accept": "application/json"
}Success responses return JSON data. Errors return a standard error object.
Error Example:
{
"error": "Error description",
"message": "Detailed error message",
"status": 400
}Search for actors by name.
| Parameter | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | The name of the actor to search for. |
Example:
curl -X GET "https://wdtmcollab-api.toolforge.org/actors/search?name=Tom%20Hanks"Get detailed information about a specific actor.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | The Wikidata ID of the actor (e.g., Q2263). |
Example:
curl -X GET "https://wdtmcollab-api.toolforge.org/actors/details/Q2263"Get co-actors for a given actor.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
actor1Id |
string | Yes | - | The Wikidata ID of the actor. |
limit |
integer | No | 20 | Number of results to return. |
offset |
integer | No | 0 | Number of results to skip. |
Example:
curl -X GET "https://wdtmcollab-api.toolforge.org/actors/co-actors?actorId=Q2263&limit=8"Get a list of popular actors.
Example:
curl -X GET "https://wdtmcollab-api.toolforge.org/actors/popular"Search for productions (movies/TV) by title.
| Parameter | Type | Required | Description |
|---|---|---|---|
title |
string | Yes | The title of the production to search for. |
Example:
curl -X GET "https://wdtmcollab-api.toolforge.org/productions/search?title=Forrest%20Gump"Get productions shared between two actors.
| Parameter | Type | Required | Description |
|---|---|---|---|
actor1Id |
string | Yes | The Wikidata ID of the first actor. |
actor2Id |
string | Yes | The Wikidata ID of the second actor. |
Example:
curl -X GET "https://wdtmcollab-api.toolforge.org/productions/shared?actor1Id=Q2263&actor2Id=Q27205"Get shared actors between two movies.
| Parameter | Type | Required | Description |
|---|---|---|---|
movie1 |
string | Yes | The Wikidata ID of the first movie. |
movie2 |
string | Yes | The Wikidata ID of the second movie. |
Example:
curl -X GET "https://wdtmcollab-api.toolforge.org/productions/shared-actors?movie1=Q43274&movie2=Q223423"-
Status Codes:
200 OK: Request successful.400 Bad Request: Missing parameters or invalid format.404 Not Found: Resource not found.429 Too Many Requests: Rate limit exceeded.500 Internal Server Error: Server error.
-
Rate Limiting: Fair usage policies apply. If exceeded, a
429status is returned.
WdTmCollab is committed to digital accessibility.
- Skip to Content: Bypass navigation for keyboard users.
- Keyboard Navigation: Full support for interactive elements.
- Semantic HTML: Optimized for screen readers.
Automated accessibility tests use axe-playwright.
npx playwright test src/tests/accessibility.spec.ts