How subinps/teleplay works
TelePlay is a Telegram-backed personal media server with a FastAPI backend, browser app, and Android TV/mobile clients. The main workflow is upload through the Telegram bot, organize files in the web or device library, then stream from Telegram on demand; Android mobile also supports offline downloads. The backend provides login, file/folder management, streaming, and TV-specific endpoints, with database metadata and watch progress. README statements establish the product-level flow; source excerpts and the index support selected internal links, but several client and backend modules were not sampled.
Main entry points: database.py Metadata database · main.py API application · bot.py Telegram bot · App.tsx Web routes
Components 26
Backend platform
- API application
backend/app/main.py - Login API
backend/app/routers/auth.py - JWT authentication
backend/app/auth.py - File API
backend/app/routers/files.py - Folder API
backend/app/routers/folders.py - Streaming API
backend/app/routers/streaming.py - TV API
backend/app/routers/tv.py - Stream engine
backend/app/streaming.py - Media queries
backend/app/services.py
Telegram integration
- Telegram bot
backend/app/bot.py - Telegram cloud
- Telegram adapter
backend/app/telegram.py
Web app
- Web routes
web/src/App.tsx - File browser
web/src/components/FileBrowser.tsx - Web API client
web/src/lib/api.ts - Web player
web/src/components/MediaPlayer.tsx
Android clients
- Android login
android/app/src/main/java/com/telegramtv/data/repository/AuthRepository.kt - Android API
android/app/src/main/java/com/telegramtv/data/api/TelePlayApi.kt - TV library
android/app/src/main/java/com/telegramtv/ui/home/HomeScreen.kt - TV player
android/app/src/main/java/com/telegramtv/ui/player/PlayerScreen.kt - Offline downloader
android/app/src/main/java/com/telegramtv/download/FileDownloader.kt - Download service
android/app/src/main/java/com/telegramtv/service/DownloadService.kt - Audio service
android/app/src/main/java/com/telegramtv/service/AudioPlaybackService.kt
Metadata and state
- Metadata database
backend/app/database.py - Media models
backend/app/models.py
Other components
- User
Connections 24
- User → Telegram bot: uploads files
README.md - Telegram bot → Telegram cloud: stores media
README.md - Telegram bot → Metadata database: records metadata
README.md - API application → Metadata database: initializes
backend/app/main.py - API application → Telegram adapter: starts client
backend/app/main.py - API application → Login API: mounts routes
- Login API → JWT authentication: validates tokens
backend/app/routers/auth.py - JWT authentication → Metadata database: loads user
backend/app/auth.py - Folder API → Metadata database: queries folders
backend/app/routers/folders.py - Media queries → Media models: queries media
backend/app/services.py - Streaming API → Stream engine: serves streams
- Stream engine → Telegram cloud: fetches chunks
README.md - User → Web routes: opens browser
README.md - Web routes → File browser: routes library
web/src/App.tsx - Web routes → Web API client: requests login
web/src/App.tsx - File browser → Web API client: requests files
web/src/components/FileBrowser.tsx - User → Android login: signs in
README.md - Android login → Android API: authenticates
- User → TV library: browses library
README.md - User → TV player: plays media
README.md - TV player → Streaming API: requests stream
README.md - TV library → Android API: loads library
- Offline downloader → Download service: observed by
android/app/src/main/java/com/telegramtv/service/DownloadService.kt - User → Offline downloader: downloads offline
README.md