| title | Rawstream |
|---|---|
| emoji | 🎥 |
| colorFrom | purple |
| colorTo | indigo |
| sdk | docker |
| app_port | 3000 |
| pinned | false |
RawStream is a premium, glassmorphic React single-page web application that allows you to stream large video files directly from public Google Drive, Microsoft OneDrive, and BitTorrent magnet URIs/torrents.
It utilizes a high-performance backend transcoding proxy powered by WebTorrent and FFmpeg, coupled with a modern reactive frontend built on Vite and React for responsive, low-latency streaming.
- Primary Web Application (Frontend): https://abhimshr08.github.io/Rawstream/
- Hosted on GitHub Pages. This static client features a responsive interface and automatically connects to the backend transcoding space.
- Transcoding & Streaming Server (Backend):
https://maverick9876-rawstream.hf.space- Hosted on Hugging Face Spaces (Docker). Serves as the cloud proxy executing FFmpeg transcoding and WebTorrent client operations.
- Cloud Links: Parse and stream directly from public Google Drive and Microsoft OneDrive sharing links.
- BitTorrent & Magnet URIs: Stream movies and shows directly from magnet links or by dragging-and-dropping
.torrentfiles. Video pieces are downloaded sequentially on-demand using WebTorrent. - Bypass Engine: Includes a Puppeteer-based stream resolver to bypass Google Drive's stream player restrictions and quota limitations.
- Vite + React Integration: Built with a modular, reactive component architecture (
src/App.jsx,Player.jsx,Controls.jsx,HistorySidebar.jsx,AdminDashboard.jsx, etc.). - Optimized Performance: Component state boundaries prevent unnecessary layout reflows, ensuring smooth and responsive playback.
- Ambient Cinema Glow: Optimized canvas backlight glow captures video frames and draws hardware-accelerated CSS blur behind the player to create an immersive theater atmosphere.
- Stacked Notification Toast System: An interactive, floating toast notification stack that transitions smoothly in from the bottom-right corner.
- Dynamic Audio Waveform Visualizer: Renders a neon canvas-based wave or animated visualizer in the player container when playing audio-only formats or while video streams are buffering.
- Visual CPU & Memory Meters: The administrator control center features dynamic, visually styled RSS/heap memory indicators and CPU load progress meters.
- Torrent Metadata Badges: Codec tags, quality values, and transcoding status details are dynamically generated and displayed in a badge grid below the player.
- Subtitles & Quality Settings: Upload local subtitles (
.srt,.vtt) or load remote WebVTT URLs. Choose resolution qualities (Auto, 720p, 480p) from controls, carrying over current player seek points.
- Locked A/V Sync: Uses dynamic audio resampling (
aresample=async=1), presentation timestamp regeneration (+genpts), and output zero-shifting (avoid_negative_ts make_zero) to prevent audio-video desynchronization during seeks or buffering. - Conflict-Free Timeline Scrubber: Custom slider handles scrubbing without timeline snapback during live transcode streaming.
- Netflix-Style Playback Resuming: Playback progress is updated every 5 seconds. If you return to a half-watched video, a prompt offers to resume from where you left off.
- Clone the repository and navigate into it:
git clone https://github.com/abhimshr08/Rawstream.git cd Rawstream - Install the package dependencies:
npm install
- Create a
.envfile in the root directory (optional, for admin settings):ADMIN_USERNAME=owner ADMIN_PASSWORD=your_secure_password
- Development Server (Vite + Dev Middleware):
npm run dev
- Production Build & Node Server:
Open
npm run build npm start
http://localhost:3000to stream.
Source cloud links must be shared publicly for RawStream to pull their streams.
- Right-click the video file in Google Drive -> Share.
- Under General Access, change from Restricted to Anyone with the link can view.
- Copy the link and paste it into RawStream.
- Select the file in OneDrive -> Click Share at the top.
- Ensure the setting is set to "Anyone with the link can view" (public).
- Copy the link and paste it into RawStream.
| Key | Action |
|---|---|
| Space / K | Play / Pause |
| ← / → | Skip backward / forward 10 seconds |
| ↑ / ↓ | Increase / decrease volume by 10% |
| M | Mute / Unmute audio |
| F | Toggle Fullscreen |
| T | Toggle Theater Mode |
This project is licensed under the MIT License - see the LICENSE file for details.