Skip to content

Companion Webapp to Jellyfin which enables the creation and sharing of clips from Jellyfin content

License

Notifications You must be signed in to change notification settings

arnolicious/jelly-clipper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🪼 Jelly-Clipper 🎬

Jelly-Clipper is an open-source web application that allows Jellyfin users to easily create, share, and manage video clips from their Jellyfin media library

Important

This is my first open source project, and it was very much a hacky "lets try to make it work somehow" thing. So absolutely feel free to contribute and fix all the stuff I did wrong :D

🌟 Features

  • Simple Clip Creation: Paste a URL and create clips with ease
  • Seamless Jellyfin Integration: Works directly with your self-hosted Jellyfin server
  • User Authentication: Clips are only accessible for other users of the Jellyfin instance
  • Easy Sharing: Generate shareable links for your favorite moments
  • User-Friendly(-ish) Interface: Intuitive design inspired by YouTube and Twitch clip functionality

📸 Screenshots

🚀 Deployment

Docker Installation

Jelly-Clipper is easily hostable with docker compose:

services:
  jelly-clipper:
    image: ghcr.io/arnolicious/jelly-clipper:latest
    container_name: jelly-clipper
    ports:
      - 3000:3000
    volumes:
      # Path to the db directory, in which the sqlite db file will live
      - <MY_DB_PATH>:/app/db
      # Path to the videos directory.
      # This will store all the clips permanently and the original files temporarily,
      # so it might get a lil big
      - <MY_VIDEOS_PATH>:/app/assets/videos
    restart: unless-stopped
    environment:
      # Timezone to have the cleanup cron job working as expected
      - TZ=Europe/Berlin
      # Full URL with Protocol and Port, where the application will live
      - JELLY_CLIPPER_ORIGIN=http://localhost:3000
      # with a reverse proxy it could be something like:
      # - JELLY_CLIPPER_ORIGIN=https://clip.jellyfin.mydomain.test

💻 Technologies

  • SvelteKit
  • Svelte 5
  • TypeScript
  • Bun
  • Drizzle ORM

🤝 Development

Prerequisites

  • Node.js v20
  • Bun
  • Jellyfin server for local development

Setup

  1. Clone the repository:

    git clone https://github.com/arnolicious/jelly-clipper.git
    cd jelly-clipper
  2. Install dependencies:

    bun install
  3. Run the development server:

    bun dev

Contributing

Contributions are welcome! Please check out our Contribution Guidelines.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📋 Todo

  • Basic Prototype
  • Implement sound (lol)
  • Download Progress Indicator
  • Clipping UI
  • Create browser extension
  • Improve mobile responsiveness

📄 License

Distributed under the MIT License. See LICENSE for more information.

📞 Contact

Disclaimer: This project is not officially affiliated with Jellyfin. It is a community-driven project created to enhance the Jellyfin experience.