
Closed
Posted
Paid on delivery
Build a production-grade Telegram Media Gateway Platform that uses Telegram as a media storage backend and provides secure APIs for websites, mobile applications, OTT platforms, Telegram bots, and future applications. This is NOT: A streaming website An anime website A movie website A video player platform This is a standalone infrastructure platform that indexes Telegram media, generates permanent media tokens, automatically refreshes expired Telegram URLs, exposes enterprise APIs, tracks analytics, and manages media access at scale. The platform must run entirely on self-hosted VPS infrastructure. PRIMARY OBJECTIVE Create a centralized Telegram Storage & Media Gateway layer that allows third-party applications to access Telegram media using only: { "channel_id": "-1001234567890", "message_id": 12345 } or { "media_id": "media_abc123" } without needing to know: Telegram Bot Tokens Telegram File IDs Telegram CDN URLs MTProto Sessions Telegram URL Expiration Logic The platform handles all Telegram interactions internally. DEPLOYMENT REQUIREMENT The entire platform must run on VPS. No Lovable Cloud. No external media relay services. No third-party streaming providers. Everything must be Dockerized and deployable using Docker Compose. REQUIRED INFRASTRUCTURE VPS Host: NestJS API Admin Dashboard Telegram Services Queue Workers Monitoring Services PostgreSQL Store: Media Metadata Tokens Analytics Cache Records Audit Logs Settings Redis Store: BullMQ Jobs Session Cache Rate Limits Temporary Data Distributed Locks BullMQ Handle: Channel Scanning URL Regeneration Analytics Aggregation Cache Cleanup Health Checks Nginx Provide: Reverse Proxy SSL Termination HTTP Compression Security Headers Rate Limiting Cloudflare Provide: DDoS Protection WAF DNS Edge Caching Rate Limiting TELEGRAM LAYER Support both: Telegram Bot API Used For: File Metadata File IDs Bot Management Public File Resolution MTProto Layer Libraries: Telethon Pyrogram Used For: Private Channels Large Files Message Retrieval Media Indexing URL Regeneration Telegram Account Rotation SYSTEM ARCHITECTURE External Website / App │ ▼ Cloudflare │ ▼ Nginx │ ▼ NestJS API │ ┌──────────┼──────────┐ ▼ ▼ ▼ Redis BullMQ PostgreSQL │ ▼ Telegram Layer (Bot API + MTProto) │ ▼ Telegram Channels CORE FEATURES The platform must: Manage Telegram Bots Manage Telegram Accounts Manage Telegram Channels Scan Telegram Media Index Telegram Files Generate Stream URLs Generate Download URLs Generate Permanent Tokens Refresh Expired URLs Expose APIs Track Analytics Support Multiple Clients Provide Admin Dashboard ADMIN DASHBOARD Create a complete enterprise dashboard. Modules: Dashboard Show: Total Media Files Active Channels Active Bots Active Accounts Active Clients Daily Requests Stream Requests Download Requests Cache Hit Ratio Bot Manager Store: Bot Token Bot Username Status Assigned Channels Usage Statistics Last Activity Features: Add Bot Edit Bot Delete Bot Enable Bot Disable Bot Validate Bot Token Telegram Account Manager Store: Session String Phone Number Status Assigned Channels Last Sync Features: Add Account Rotate Account Disable Account Session Validation Health Monitoring Channel Manager Store: Channel ID Channel Name Username Status Assigned Bot Assigned Account Media Count Last Scan Features: Add Channel Edit Channel Delete Channel Manual Scan Automatic Scan Media Library Features: Search Media Filter Media Copy Tokens Preview Metadata View Analytics Reindex Media API Client Manager Manage: API Keys API Secrets Allowed Domains Permissions Rate Limits Analytics Track: Streams Downloads Popular Content API Usage Cache Statistics Telegram Requests Logs View: API Logs Queue Logs Security Logs Telegram Logs Error Logs Security Center Manage: JWT API Keys Secrets IP Whitelist Domain Validation Signature Validation Health Monitoring Track: VPS Health Database Health Redis Health Queue Health Telegram Health API Health MEDIA INDEXER Scan Telegram channels automatically. Store metadata only. Never permanently store Telegram CDN URLs. Store: Media ID Channel ID Message ID File ID File Unique ID File Name File Size Duration Resolution Thumbnail Caption MIME Type Upload Date PERMANENT TOKEN SYSTEM Every media file receives: Stream Token Example: /st/abc123xyz Download Token Example: /dl/xyz123abc Tokens never change. External applications store: { "media_id": "media_123", "stream_token": "st_abc123", "download_token": "dl_xyz123" } Never store Telegram URLs. DIRECT MEDIA RESOLUTION API This is one of the most important APIs. External applications send: { "channel_id": "-1001234567890", "message_id": 12345 } The system automatically: Finds the Telegram message Extracts metadata Creates media record Creates tokens Generates URLs Returns response Endpoint POST /api/v1/media/resolve Request: { "channel_id": "-1001234567890", "message_id": 12345 } Response: { "success": true, "media_id": "media_abc123", "stream_token": "st_xyz123", "download_token": "dl_xyz123", "stream_url": "[login to view URL]", "download_url": "[login to view URL]", "file_name": "[login to view URL]", "file_size": 2147483648 } STREAM API Endpoint GET /st/{token} Flow: Validate Token ↓ Check Cache ↓ URL Valid? ↓ YES → Return URL ↓ NO ↓ Generate Fresh URL ↓ Update Cache ↓ Return URL Telegram download URLs are temporary and guaranteed to be valid for at least one hour, requiring regeneration when expired. DOWNLOAD API Endpoint GET /dl/{token} Flow: Validate Token ↓ Check Cache ↓ URL Valid? ↓ YES → Return URL ↓ NO ↓ Generate Fresh URL ↓ Update Cache ↓ Return URL DIRECT STREAM LINK API POST /api/v1/media/stream-link Request: { "channel_id": "-1001234567890", "message_id": 12345 } Response: { "stream_url": "[login to view URL]" } DIRECT DOWNLOAD LINK API POST /api/v1/media/download-link Request: { "channel_id": "-1001234567890", "message_id": 12345 } Response: { "download_url": "[login to view URL]" } BULK RESOLUTION API POST /api/v1/media/bulk-resolve Request: { "items": [ { "channel_id": "-1001234567890", "message_id": 1001 }, { "channel_id": "-1001234567890", "message_id": 1002 } ] } Response: { "success": true, "results": [] } ON-DEMAND INDEXING If media is not indexed: API Request ↓ Media Exists? ↓ No ↓ Fetch Telegram Message ↓ Extract Metadata ↓ Create Media Record ↓ Generate Tokens ↓ Return Response SMART URL REGENERATION ENGINE Store: telegram_url generated_at expires_at last_verified status Workers must: Detect Expiration Refresh URLs Update Cache Prevent Failures Telegram file URLs expire and must be regenerated through Telegram APIs when needed. RESUMABLE DOWNLOAD SUPPORT Support: HTTP Range Requests Partial Content Download Managers Large Files Resume Support Users should never restart downloads from 0%. STREAM RECOVERY Support: [login to view URL] Plyr HTML5 Video ExoPlayer AVPlayer Features: Seeking Resume Playback Range Requests URL Refresh MULTI-CLIENT SYSTEM Support: AnimeSite MovieSite AndroidApp TelegramBot Future Clients Each Client Receives: Client ID Client Secret API Key API Secret Rate Limit Analytics SECURITY Implement: JWT Authentication API Keys API Secrets HMAC Signatures Signed URLs Replay Protection Nonce Validation Domain Validation Cloudflare Protection Rate Limiting Secret Encryption Audit Logging ANALYTICS Track: Daily Requests Active Clients Stream Requests Download Requests Top Content Cache Hit Ratio Telegram Requests URL Regenerations API Errors Bot Usage HEALTH MONITORING Monitor: VPS PostgreSQL Redis BullMQ Bots Telegram Accounts Queue Workers APIs Generate: Alerts Incident Reports Health Logs OPENAPI & SDK Generate: OpenAPI 3.1 Swagger Documentation TypeScript SDK Request Validation Response Validation DATABASE TABLES bots telegram_accounts channels media_files stream_tokens download_tokens stream_cache download_cache api_clients client_domains analytics audit_logs system_settings jobs queue_failures health_checks BACKGROUND WORKERS BullMQ Workers: Channel Scan Worker Metadata Sync Worker URL Regeneration Worker Cache Cleanup Worker Analytics Worker Health Check Worker OBSERVABILITY Implement: Prometheus Grafana Loki Structured Logs Metrics Dashboard Error Tracking BACKUP SYSTEM Automated: PostgreSQL Backup Redis Backup Configuration Backup Session Backup Retention: Daily Weekly Monthly RECOMMENDED TECH STACK Backend NestJS TypeScript Prisma ORM Database PostgreSQL Queue Redis BullMQ Telegram Telethon Pyrogram Telegram Bot API Monitoring Prometheus Grafana Loki Deployment Docker Docker Compose Nginx Cloudflare FINAL DELIVERABLE A production-grade Telegram Media Gateway Platform capable of indexing millions of Telegram media files, generating permanent media tokens, resolving media using Channel ID and Message ID, automatically refreshing expired Telegram URLs, providing stream and download APIs, supporting multiple clients, and running entirely on VPS infrastructure with enterprise-grade security, analytics, monitoring, scalability, and fault tolerance. and this will be hosted on vps 2vcpu and 2gb ram 500mbps bandwidth in this vps streaming and downloading can easily handle and it can handle 1000 cocurrent users and 100k to 400k daily users
Project ID: 40566052
21 proposals
Remote project
Active 57 yrs ago
Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs