Skip to content

yigit433/feather-stream

Repository files navigation

Feather Stream

Feather Stream Logo

A desktop application that lets you easily watch your media files stored on Google Drive. Built with Tauri, React, and TypeScript.

✨ Features

  • 🔐 Google OAuth Authentication – Secure sign-in with your Google account
  • 📁 Google Drive Integration – Direct access to your Drive folders
  • 🎬 Video Playback – Watch videos directly inside the application
  • 📝 Subtitle Support – Supports SRT and VTT subtitle formats
  • 💾 Video Download & Caching – Download videos for offline viewing
  • 🎨 Modern UI – Dark theme designed with Tailwind CSS
  • 🛡️ Easy Setup – If a .env file is not found, the app prompts you on first launch to enter your Google OAuth Client ID and Secret via a setup window and stores them locally. This enables a fast start without requiring technical setup.

🛠️ Technologies

Frontend

  • React 19
  • TypeScript
  • Tailwind CSS 4
  • Vite 7

Backend

  • Tauri 2
  • Rust
  • SQLite (tauri-plugin-sql)

📋 Requirements

🚀 Installation

  1. Clone the repository:
git clone https://github.com/yigit433/feather-stream.git
cd feather-stream
  1. Install dependencies:
bun install
  1. Create a new project in the Google Cloud Console and follow these steps:

    • Enable Google Drive API under APIs & Services > Library
    • Create an OAuth 2.0 Client ID under APIs & Services > Credentials
    • Add http://localhost:8585 as a Redirect URI
  2. Create a .env file and add your Google OAuth credentials:

GOOGLE_CLIENT_ID=your_client_id
GOOGLE_CLIENT_SECRET=your_client_secret

Note: If you do not create a .env file, the application will ask for your Google OAuth Client ID and Secret via a setup window on first launch and store them locally. This allows you to complete the setup without manually managing environment files.

  1. Run in development mode:
bun run tauri dev

📦 Build

To build for production:

bun run tauri build

🔧 Project Structure

feather-stream/
├── src/                    # React frontend
│   ├── components/         # React components
│   │   ├── FileBrowser.tsx
│   │   ├── FolderPicker.tsx
│   │   ├── GoogleSignInButton.tsx
│   │   ├── HomeView.tsx
│   │   ├── MediaCard.tsx
│   │   ├── MediaDetail.tsx
│   │   ├── Settings.tsx
│   │   └── VideoPlayer.tsx
│   ├── types/              # TypeScript types
│   ├── App.tsx
│   └── main.tsx
├── src-tauri/              # Rust backend
│   ├── src/
│   │   ├── auth.rs         # Google OAuth logic
│   │   ├── drive.rs        # Google Drive API logic
│   │   ├── lib.rs          # Tauri commands
│   │   └── main.rs
│   ├── Cargo.toml
│   └── tauri.conf.json
└── package.json

💻 Recommended IDE Setup

📄 License

This project is licensed under the MIT License. See the LICENSE file for details.

👤 Developer

About

A desktop application that lets you easily watch your media files stored on Google Drive. Built with Tauri, React, and TypeScript.

Resources

License

Stars

Watchers

Forks

Languages