{"id":28816155,"url":"https://github.com/qya/cloudflare-stream-manager","last_synced_at":"2026-04-27T16:32:50.194Z","repository":{"id":299720271,"uuid":"1003977644","full_name":"qya/cloudflare-stream-manager","owner":"qya","description":"Cloudflare Stream Manager","archived":false,"fork":false,"pushed_at":"2025-06-18T17:40:22.000Z","size":492,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-23T00:55:13.584Z","etag":null,"topics":["cloudflare","cloudflare-stream","electron","electron-forge","react"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/qya.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-17T23:54:00.000Z","updated_at":"2025-07-02T12:31:20.000Z","dependencies_parsed_at":"2025-06-18T01:19:05.339Z","dependency_job_id":"1a658c7c-183f-4a79-b826-e614122ce63d","html_url":"https://github.com/qya/cloudflare-stream-manager","commit_stats":null,"previous_names":["qya/cloudflare-stream-manager"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/qya/cloudflare-stream-manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qya%2Fcloudflare-stream-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qya%2Fcloudflare-stream-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qya%2Fcloudflare-stream-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qya%2Fcloudflare-stream-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qya","download_url":"https://codeload.github.com/qya/cloudflare-stream-manager/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qya%2Fcloudflare-stream-manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32345804,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloudflare","cloudflare-stream","electron","electron-forge","react"],"created_at":"2025-06-18T17:02:28.973Z","updated_at":"2026-04-27T16:32:50.176Z","avatar_url":"https://github.com/qya.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cloudflare Stream Manager\n\n![Platform](preview.png)\n\n![Version](https://img.shields.io/badge/version-0.1.5-blue.svg)\n![License](https://img.shields.io/badge/license-MIT-green.svg)\n![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey.svg)\n\n\nA beautiful, modern desktop application for managing your Cloudflare Stream video content with ease. Built with React, TypeScript, and Electron.\n\n## ✨ Features\n\n### 🎥 Video Management\n- **Upload Videos**: Drag \u0026 drop or browse to upload videos to Cloudflare Stream\n- **Video Library**: Browse and manage all your uploaded videos\n- **Video Preview**: Stream videos directly in the app with detailed metadata\n- **Download Videos**: Enable and download videos for offline use\n- **Video Details**: View comprehensive information including resolution, duration, file size, and streaming URLs\n\n### 🖼️ Watermark Support\n- **Watermark Manager**: Upload and manage custom watermarks\n- **Apply Watermarks**: Apply watermarks to videos during upload\n- **Watermark Preview**: Preview watermarks before applying\n\n### 📊 Dashboard \u0026 Analytics\n- **Usage Statistics**: View total videos, ready videos, watermarks, and storage used\n- **Real-time Updates**: Automatic refresh of statistics and video status\n- **Status Monitoring**: Track video processing status (queued, processing, ready, error)\n\n### 🌐 Network Awareness\n- **Offline Detection**: Intelligent offline/online detection\n- **Graceful Degradation**: Clear messaging when features require internet connectivity\n- **Auto-reconnect**: Automatic data refresh when connection is restored\n\n### ⚙️ Configuration \u0026 Settings\n- **Secure Credentials**: Safely store Cloudflare API credentials locally\n- **Account Management**: Easy setup and management of Cloudflare Stream API access\n- **Settings Persistence**: All configurations saved locally for convenience\n\n### ℹ️ System Information\n- **About Page**: Detailed system specifications and application information\n- **Technology Stack**: View all technologies and versions used in the app\n- **Electron Integration**: Native desktop features and system integration\n\n## 🚀 Quick Start\n\n### Prerequisites\n- **Node.js** 18+ \n- **npm** or **pnpm**\n- **Cloudflare Account** with Stream API access\n\n### Installation\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/qya/cloudflare-stream-manager.git\n   cd cloudflare-stream-manager\n   ```\n\n2. **Install dependencies**\n   ```bash\n   npm install\n   ```\n\n3. **Start development server**\n   ```bash\n   npm run electron:dev\n   ```\n\n### Setup Cloudflare Stream API\n\n1. **Get your API credentials**:\n   - Go to [Cloudflare Dashboard](https://dash.cloudflare.com)\n   - Navigate to \"My Profile\" → \"API Tokens\"\n   - Create a token with Stream permissions\n   - Note your Account ID from the dashboard\n\n2. **Configure in app**:\n   - Launch the application\n   - Enter your Account ID and API Token\n   - Click \"Save Configuration\"\n\n## 🛠️ Development\n\n### Tech Stack\n- **Frontend**: React 18 + TypeScript\n- **Desktop**: Electron 28 with Electron Forge\n- **Build Tool**: Vite 5\n- **Styling**: Tailwind CSS 3\n- **Icons**: Lucide React\n- **API**: Cloudflare Stream API v1\n\n### Available Scripts\n\n```bash\n# Development\nnpm run dev              # Start Vite dev server\nnpm run electron:dev     # Start Electron with hot reload\nnpm start               # Start with Electron Forge\n\n# Building\nnpm run build           # Build React app\nnpm run package         # Package Electron app\nnpm run make            # Create platform installers\n\n# Platform-specific builds\nnpm run make:win        # Windows (all architectures)\nnpm run make:win:x64    # Windows 64-bit\nnpm run make:win:ia32   # Windows 32-bit  \nnpm run make:linux      # Linux\nnpm run make:darwin     # macOS\n\n# Utilities\nnpm run lint            # Run ESLint\nnpm run preview         # Preview built app\n```\n\n### Project Structure\n\n```\nsrc/\n├── components/          # React components\n│   ├── About/          # About page and system info\n│   ├── Layout/         # Header, Sidebar, navigation\n│   ├── Settings/       # Configuration forms\n│   ├── Upload/         # Video upload components\n│   ├── Videos/         # Video management\n│   └── Watermarks/     # Watermark management\n├── services/           # API services\n│   ├── cloudflare.ts   # Cloudflare Stream API\n│   └── tusUpload.ts    # TUS upload protocol\n├── types/              # TypeScript definitions\n└── App.tsx             # Main application component\n\nelectron/\n├── main.ts             # Electron main process\n└── preload.ts          # Preload script for security\n\nbuild/\n└── icon/               # Application icons\n    ├── icon.ico        # Windows icon\n    ├── icon.icns       # macOS icon\n    └── icon.png        # Linux icon\n```\n\n## 📦 Building \u0026 Distribution\n\n### Desktop Application\n\nThe app builds native desktop applications for multiple platforms:\n\n#### Windows\n- **Squirrel Installer** (`.exe`) - Modern auto-updating installer\n- **MSI Installer** (`.msi`) - Traditional Windows installer\n- **Portable ZIP** - No installation required\n- **Architectures**: x64, x86 (32-bit)\n\n#### macOS\n- **App Bundle** (`.app`) - Native macOS application\n- **ZIP Archive** - Compressed app bundle\n- **Architecture**: ARM64 (Apple Silicon), x64 (Intel)\n\n#### Linux\n- **DEB Package** (`.deb`) - Debian/Ubuntu installer\n- **RPM Package** (`.rpm`) - RedHat/Fedora installer\n- **AppImage** - Portable Linux application\n\n### Build Commands\n\n```bash\n# Build for current platform\nnpm run make\n\n# Cross-platform builds (requires additional setup)\nnpm run make:win:x64     # Windows 64-bit\nnpm run make:win:ia32    # Windows 32-bit\nnpm run make:linux       # Linux\nnpm run make:darwin      # macOS\n```\n\n### Output Directory\n\nBuilt applications are saved to:\n- `out/make/squirrel.windows/` - Windows installers\n- `out/make/wix/` - Windows MSI files\n- `out/make/zip/` - Portable ZIP files\n- `out/make/deb/` - Linux DEB packages\n- `out/make/rpm/` - Linux RPM packages\n\n## 🔧 Configuration\n\n### Environment Variables\n\nFor production builds, you can set these environment variables:\n\n```bash\n# Windows Code Signing (optional)\nWINDOWS_CERTIFICATE_FILE=/path/to/certificate.p12\nWINDOWS_CERTIFICATE_PASSWORD=your_certificate_password\n\n# App Store publishing (optional)\nAPPLE_ID=your_apple_id\nAPPLE_ID_PASSWORD=app_specific_password\n```\n\n### Cloudflare Stream API Setup\n\n1. **Account ID**: Found in your Cloudflare dashboard sidebar\n2. **API Token**: Create with these permissions:\n   - Zone:Stream:Edit\n   - Account:Cloudflare Stream:Edit\n   - Account:Account:Read\n\n## 🌟 Features in Detail\n\n### Video Upload\n- **Resumable Uploads**: Uses TUS protocol for reliable large file uploads\n- **Progress Tracking**: Real-time upload progress with speed and ETA\n- **Format Support**: MP4, MOV, AVI, MKV, WebM, and more\n- **Watermark Integration**: Apply watermarks during upload\n\n### Video Management\n- **Bulk Operations**: Select and manage multiple videos\n- **Status Monitoring**: Real-time processing status updates\n- **Metadata Editing**: Update video names and descriptions\n- **URL Generation**: Copy streaming URLs (HLS, DASH)\n\n### Offline Support\n- **Connection Detection**: Automatic online/offline status detection\n- **Graceful Handling**: Clear messaging for offline-only features\n- **Data Persistence**: Local storage of configuration and cache\n\n### Security \u0026 Privacy\n- **Local Storage**: All credentials stored locally, never transmitted\n- **Context Isolation**: Secure Electron configuration\n- **HTTPS Only**: All API communications over secure connections\n\n## 🤝 Contributing\n\nWe welcome contributions! Please follow these steps:\n\n1. **Fork the repository**\n2. **Create a feature branch**: `git checkout -b feature/amazing-feature`\n3. **Commit your changes**: `git commit -m 'Add amazing feature'`\n4. **Push to the branch**: `git push origin feature/amazing-feature`\n5. **Open a Pull Request**\n\n### Development Guidelines\n\n- Use TypeScript for all new code\n- Follow the existing code style (ESLint configuration)\n- Add tests for new features\n- Update documentation as needed\n- Ensure cross-platform compatibility\n\n## 📋 Requirements\n\n### System Requirements\n- **Windows**: Windows 10 or later (x64, x86)\n- **macOS**: macOS 10.15 (Catalina) or later\n- **Linux**: Ubuntu 16.04+, Fedora 24+, or equivalent\n\n### Development Requirements\n- **Node.js**: 18.0.0 or later\n- **npm**: 8.0.0 or later\n- **Git**: For version control\n- **Platform-specific build tools** (for cross-compilation)\n\n## 📝 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 👨‍💻 Author\n\n**Fais.tech**\n- Website: [fais.tech](https://fais.tech)\n- GitHub: [@qya](https://github.com/qya)\n\n## 🙏 Acknowledgments\n\n- [Cloudflare Stream](https://cloudflare.com/products/cloudflare-stream/) - Video streaming infrastructure\n- [Electron](https://electronjs.org/) - Desktop app framework\n- [React](https://reactjs.org/) - UI library\n- [Tailwind CSS](https://tailwindcss.com/) - CSS framework\n- [Lucide](https://lucide.dev/) - Beautiful icons\n\n## 📚 Additional Resources\n\n- [Cloudflare Stream API Documentation](https://developers.cloudflare.com/stream/)\n- [Electron Documentation](https://electronjs.org/docs)\n- [React Documentation](https://reactjs.org/docs)\n- [TypeScript Documentation](https://typescriptlang.org/docs)\n\n---\n\n**Built with ❤️ by Fais.tech** \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqya%2Fcloudflare-stream-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqya%2Fcloudflare-stream-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqya%2Fcloudflare-stream-manager/lists"}