OMSS-compliant streaming backend powering the CinePro ecosystem. Built with @omss/framework for extensible, type-safe media scraping and streaming.
CinePro Core is the foundational backend service that provides OMSS-compliant streaming capabilities for movies and TV shows. This repository serves as the central scraping and streaming engine, designed to work seamlessly with CineHome and other CinePro services.
Built on the OMSS template, this backend implements a modular provider system that enables easy integration of multiple streaming sources while maintaining type safety and production-ready standards.
- π― OMSS-Compliant β Follows the Open Media Streaming Standard specification
- π Modular Providers β Drop-in provider system with auto-discovery
- π‘οΈ Type-Safe β Full TypeScript implementation with strict types
- β‘ Production-Ready β Redis caching, Docker support, error handling
- π¬ Multi-Source β Support for movies and TV shows from multiple providers
- π Hot Reload β Development mode with automatic restarts
- π¦ CineHome Integration β Compatible with CineHome download automation
- π Metadata-Rich β TMDB integration for complete media information
- Node.js 20+
- Redis (optional, for production caching)
- TMDB API Key (get one here)
# Clone the repository
git clone https://github.com/cinepro-org/core.git
cd core
# Install dependencies
npm install
# Configure environment
cp .env.example .env
# Edit .env and add your TMDB_API_KEY# Start dev server with hot reload
npm run dev
# Server runs at http://localhost:3000# Build and start
npm run build
npm start
# Or use Docker Compose
docker-compose up -dcore/
βββ src/
β βββ server.ts # Main server entrypoint
β βββ providers/ # Streaming source providers
β β βββ example.ts # Reference implementation
βββ .env.example # Environment configuration template
βββ docker-compose.yml # Redis + server orchestration
βββ package.json # Dependencies and scripts
βββ tsconfig.json # TypeScript configuration
CinePro Core uses an extensible provider system. Each provider implements the BaseProvider interface to supply streaming sources.
// src/providers/mysite.ts
import { BaseProvider } from '@omss/framework';
export class MySiteProvider extends BaseProvider {
readonly id = 'mysite';
readonly name = 'My Streaming Site';
readonly BASE_URL = 'https://mysite.com';
readonly capabilities = {
supportedContentTypes: ['movies', 'tv']
};
async getMovieSources(tmdbId: string) {
// Implementation
}
async getTVSources(tmdbId: string, season: number, episode: number) {
// Implementation
}
}Place your provider in src/providers/ and restart the server. The framework automatically discovers and registers new providers.
Create a .env file based on .env.example:
# Required
TMDB_API_KEY=your_tmdb_api_key_here
# Server Configuration
PORT=3000
HOST=localhost
NODE_ENV=development
PUBLIC_URL=http://localhost:3000
# Redis (Production)
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=CinePro Core requires a TMDB API key for metadata enrichment:
- Create a TMDB account at themoviedb.org
- Navigate to Settings β API
- Request an API key (choose "Developer" option)
- Add the key to your
.envfile
npm run dev # Development server with hot reload
npm run build # Build for production
npm start # Start production server. Requires build first
npm run format # Format code with Prettier- TypeScript strict mode enabled
- Prettier for code formatting
- Comprehensive error handling
- Provider interface compliance
- OMSS Specification: github.com/omss-spec/omss-spec
- Framework Docs: @omss/framework on npm
- CinePro Docs: cinepro.mintlify.app
CinePro is actively maintained and open to contributors. We welcome: github
- New provider implementations
- Bug fixes and improvements
- Documentation enhancements
- Performance optimizations
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-provider) - Commit your changes (
git commit -m 'Add amazing provider') - Push to the branch (
git push origin feature/amazing-provider) - Open a Pull Request
See CONTRIBUTING.md for detailed guidelines.
CinePro Core is designed for personal and home use only. Users are responsible for ensuring compliance with applicable laws and terms of service for streaming sources. This software does not host, store, or distribute any copyrighted content. github
MIT Β© CinePro Organization
- Built with OMSS Framework
- Metadata powered by The Movie Database (TMDB)
- Template from omss-spec/template
Documentation - Discussions - Report Issue
β Star this repo if you find it useful!