Skip to content
generated from omss-spec/template

(BETA) Rework of CinePro but with TS and OMSS Compliance

License

Notifications You must be signed in to change notification settings

cinepro-org/core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CinePro Core 🎬

OMSS-compliant streaming backend powering the CinePro ecosystem. Built with @omss/framework for extensible, type-safe media scraping and streaming.


Overview

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.


✨ Features

  • 🎯 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

πŸš€ Quick Start

Prerequisites

  • Node.js 20+
  • Redis (optional, for production caching)
  • TMDB API Key (get one here)

Installation

# 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

Development

# Start dev server with hot reload
npm run dev

# Server runs at http://localhost:3000

Production

# Build and start
npm run build
npm start

# Or use Docker Compose
docker-compose up -d

πŸ“ Project Structure

core/
β”œβ”€β”€ 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

πŸ”Œ Adding Providers

CinePro Core uses an extensible provider system. Each provider implements the BaseProvider interface to supply streaming sources.

Create a New Provider

// 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
    }
}

Auto-Discovery

Place your provider in src/providers/ and restart the server. The framework automatically discovers and registers new providers.


βš™οΈ Configuration

Environment Variables

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=

TMDB API Key

CinePro Core requires a TMDB API key for metadata enrichment:

  1. Create a TMDB account at themoviedb.org
  2. Navigate to Settings β†’ API
  3. Request an API key (choose "Developer" option)
  4. Add the key to your .env file

πŸ› οΈ Development

Scripts

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

Code Standards

  • TypeScript strict mode enabled
  • Prettier for code formatting
  • Comprehensive error handling
  • Provider interface compliance

πŸ“š Documentation


🀝 Contributing

CinePro is actively maintained and open to contributors. We welcome: github

  • New provider implementations
  • Bug fixes and improvements
  • Documentation enhancements
  • Performance optimizations

How to Contribute

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-provider)
  3. Commit your changes (git commit -m 'Add amazing provider')
  4. Push to the branch (git push origin feature/amazing-provider)
  5. Open a Pull Request

See CONTRIBUTING.md for detailed guidelines.


πŸ”’ Legal Notice

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


πŸ“„ License

MIT Β© CinePro Organization


🌟 Acknowledgments


Documentation - Discussions - Report Issue

⭐ Star this repo if you find it useful!

About

(BETA) Rework of CinePro but with TS and OMSS Compliance

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published