Skip to content

SOYO - Stream Own Your Own || Effortlessly stream files from your local system via local network and enjoy your personal collection anywhere in your home.

License

Notifications You must be signed in to change notification settings

fal3n-4ngel/SOYO

Repository files navigation

SOYO - Stream On Your Own

What is SOYO?

SOYO is a Next.js website designed to display video files stored on a local drive (default: F:/). The website is accessible throughout the local network, providing a convenient way to browse and view videos without needing a central server.
Wanted to watch animes on phone but low on storage , so proceeded to spend hours in this

Technical Details

Framework: Next.js
Styling: Tailwind CSS

Features

  • Displays all video files from the specified local drive.
  • Accessible across devices on the same local network.
  • User-friendly interface for easy navigation and viewing.
  • Fetches anime thumbnails from AniList API to display cover images for videos (if available).
  • Fallback to local thumbnails if no external thumbnail is found.
  • Ability to fetch movie/poster images from IMDb using OMDb API for non-anime videos.

Screenshots

Laptop view Mobile view Mobile view Laptop view

Run using Docker

DockerHub Image

docker pull fal3n4ngel/soyo

Prerequisites

  • Docker Desktop installed
  • Sufficient permissions to run Docker
  • Access to local video directories
Custom Building

Install Docker Desktop:

  • Windows/Mac: Download from Docker's official website
  • Linux: Use package manager or follow the official Docker CE installation guides

Build Docker Image


docker build -t soyo .  
docker build -t soyo:v1.0 . # build with specific tag

Run Docker Container

# Basic run 
docker run -d -p <port>:8311 --volume=F:/:/Movies --volume=G:/:/Anime --name soyo fal3n4ngel/soyo:latest

# Run with auto-restart policy
docker run -d --restart=unless-stopped -p <port>:8311 --volume=F:\:/Movies --volume=G:\:/Anime --name soyo fal3n4ngel/soyo:latest

Access the Website:

Open your browser and navigate to

http://{ip}:<port> 

Run Using Node.js

Clone the Repository:

git clone https://github.com/fal3n-4ngel/soyo.git
cd soyo

Install Dependencies:

npm install

Create or edit config.json

{
  "movieDir": "F:/",
  "thumbnailCache": false,
  "lastAccessedMovie": null
}

Run the Development Server:

npm run dev

Run the Production Server:

npm run build
npm run start

Access the Website:

Open your browser and navigate to

http://{ip}:3000   # if Development Server
http://{ip}:8311   # if Production Server

to view the website.

Troubleshooting

1. Volume Mounting Issues

  • Symptoms

    • Videos not displaying
    • Incorrect directory access
    • Permission-related errors
  • Troubleshooting Steps

    # verify the external / needed drives are mounted
    # restart the wsl ( within docker desktop )

Contributors

Jes-ny
Adithya Krishnan

License

This project is open-source and available under the MIT License.

Interested in improving Soyo? I welcome contributions! Feel free to open issues, submit pull requests, or share your ideas on GitHub. Together, we can make this project even better. 🌟

About

SOYO - Stream Own Your Own || Effortlessly stream files from your local system via local network and enjoy your personal collection anywhere in your home.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Languages