An Effect-based client for the OMDb API.
npm install @movie-effect/omdb effect @effect/platform @effect/platform-node
# or
pnpm add @movie-effect/omdb effect @effect/platform @effect/platform-node- Full TypeScript support with Effect
- Type-safe API responses with Schema validation
- Built-in rate limiting
- Observability with Effect tracing
This library requires an OMDb API key.
- Go to omdbapi.com/apikey.aspx
- Choose a plan (free tier: 1,000 requests/day)
- Enter your email and submit
- Check your email and activate your API key
For local development, set the OMDB_API_KEY environment variable:
export OMDB_API_KEY="your-api-key"The key should be appended as a URL param to all requests, e.g.,
http://www.omdbapi.com/?i=tt3896198&apikey=MY_API_KEY
import { NodeHttpClient } from '@effect/platform-node'
import { OmdbClient, OmdbConfig } from '@movie-effect/omdb'
import { Console, Effect } from 'effect'
const program = Effect.gen(function*() {
const client = yield* OmdbClient
const movie = yield* client.getByTitle('Inception')
yield* Console.log(movie.Title, movie.Year)
})
const runnable = program.pipe(
Effect.provide(OmdbClient.Default),
Effect.provide(OmdbConfig.layer({ apiKey: 'your-api-key' })),
Effect.provide(NodeHttpClient.layer),
)
Effect.runPromise(runnable)- Search by title or IMDb ID
- Detailed movie/series information
- Season and episode details
- @movie-effect/omdb-cli - CLI for OMDb
- @movie-effect/core - Shared utilities