Skip to content

pbuyle/Chocolate

 
 

Repository files navigation

wakatime GitHub release GitHub stars GitHub watchers License issues - Chocolate

About The Project

Chocolate is an Open Source media manager.
It allows you to manage your media collection and organize it in a way that is easy to use and easy to search.
Pair your popcorn with Chocolate and enjoy your favorite movie!
It's a free software.

This product uses the TMDB API but is not endorsed or certified by TMDB |


Built With

Chocolate is actually made with this technologies:

  • HTML5
  • CSS3
  • Javascript
  • Python
  • Flask

Getting Started

This is what you have to do to get started with Chocolate :

Prerequisites

Installation

For Linux

  • Go to the latest release
  • Download the latest installer named install.sh
  • Place it where you want
  • Run it
  • Enjoy !

For Windows

  • No installer available actually
  • So download the source code and install the dependencies (requirements.txt, ffmpeg and winrar (only for cbr files so books))
  • For ffmpeg and winrar, you have to add them to your PATH

For QNAP

For Docker

  • Execute docker pull imprevisible/chocolate
  • Enjoy !

Files organizations

For Movies :

  • Create a directory
  • Put all your movies in with a proper name, like "Batman Begins.mkv" instead of "Batman.Begins.H264.AAC.XxMOVIESxX.mkv", they can be in subdirectories (only one level, one movie per directory)
📂 Movies
 ├── 📂 Batman Begins      # Perfect
 │    └── Batman Begins.mkv
 ├── Back to the Future.mkv
 ├── Harry Potter and the Philosopher's Stone.mkv
 │
 ├── 📂 The Lord of the Rings    # Don't do that please (two movies in one directory !)
 │    ├── The Lord of the Rings - The Fellowship of the Ring.mkv
 │    └── The Lord of the Rings - The Two Towers.mkv
  • Create a new library and select the directory you created with the specific type
  • It's done

For Shows :

  • Create a directory
  • Create a directory for each shows
  • In this directory create directory for each seasons, if possible named them like that : "S1", "S2", "S26"
  • In this seasons directory put all épisodes files, and if possible named them like that : "E1.mkv", "E2.mp4", "E56.avi"
  • Precisions : Chocolate will ask you to rename files and directory if it don't understand, you can agree or disagree is proposition
📂 Shows
 ├── 📂 The Office           # Perfect
 │    ├── 📂 S1
 │    │    ├── E1.mkv
 │    │    ├── E2.mkv
 │    │    └── E3.mkv
 │    │
 │    └── 📂 S2
 │         └── E1.mkv
 │
 ├── 📂 The Simpsons        # Don't do that please
 │    └── 📂 Season 1
 │         ├── The.Simpsons.EP.One.mkv
 │         ├── The.Simpsons.EP.Two.mkv
 │         └── The.Simpsons.EP.Three.mkv
  • Create a new library and select the directory you created with the specific type
  • It's done

For Games :

  • Create a directory
  • Create a directory for each consoles
  • For each directory put games for this console
  • Some consoles need a bios, go to /static/bios/
    • Create a directory named by the console
    • Put in the bios file
  • It's done

For Books :

  • Create a directory
  • Put all your books in with the name that you want
  • It's done

List of supported console :

  • Gameboy
  • Gameboy Color
  • Gameboy Advance
  • Nintendo DS
  • Nintendo 64
  • Nintendo Entertainment System
  • Super Nintendo Entertainment System
  • Sega Master System
  • Sega Mega Drive
  • Sega Saturn
  • Sony Playstation 1 (for .cue and .bin you have to .zip all files) (need a bios)

Start Chocolate

For Linux

  • execute 'chocolate' in your terminal

For Windows

  • Execute app.py

For Docker

  • Execute :
    • CMD : docker run -d -v %cd%:/chocolate imprevisible/chocolate
    • Powershell : docker run -d -v ${PWD}:/chocolate imprevisible/chocolate
    • Linux : docker run -d -v $(pwd):/chocolate imprevisible/chocolate

Important Informations

  • At the first launch, Chocolate will be very fast if you don't renseign the path in config.ini.
  • If you don't change all the paths. Go to the settings, and fill in the forms.
  • You can change a lot of settings directly on the website.
  • The default port is 8500.

Usage

screencapture-localhost-8500-2022-08-18-18_03_30 screencapture-localhost-8500-films-2022-08-18-18_04_53

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  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

TO-DO for Chocolate Server

  • A docker image URGENT
  • Create a plugin system
  • Add the mobile ui of the video player
  • Add Books, PDF, Epub
  • Add Musics
  • Add a watchtogether system
  • Translate in multiple languages
  • Multiple interface
  • Allow custom css
  • Statistics
  • Custom intro
  • Add a system to search for subtitles (By using OpenSubtitles API here )
  • Send issues directly from the website
  • Order by title, year, release date, note, duration, done, watching, date of add, date of last view
  • Add watched movies, and series to TRAKT
  • Add movies, series, games without restarting the server
  • Add support to trakt
  • Use the GPU to encode videos if possible
  • Change season with the buttons
  • Add logs
  • Use arrow keys to change books pages
  • Design a UI for the path selection instead of a string
  • Use two pages for books on horizontal screen

Work in progress

  • Detect series intro and skip them
  • Dev a mobile/TV app with chromecasting, and download
  • Use Flask-PWA
  • Add all audio tracks
  • Translate the rescan buttons
  • Add website UI to link with Radarr, Sonarr, Lidarr... (with pyarr/aiopyarr)
  • Move the UI to React

Tasks Done

  • Increase the boot speed
  • Added the Consoles on the main page
  • Replace JSON by a DB
  • Converted all images to webp
  • Create a local account system for child and members of the family/friends
  • Patch few bugs like :
    • Actors page
    • Popup of the first and random show
  • Add Games
  • Add shows, tv programs
  • Enable or not RPC for Discord
  • Add multiple quality vidéos
  • Vue systeme by account instead of computer
  • Add the loading everywhere
  • Repair the RPC System (added a button for the github)
  • Create a systeme of library
  • Increase the search system
  • Upgrade the responsive
  • Edit movie metadata directly on the website
  • Add a download button
  • Add TV with M3U playlist
  • Added new type of library, "other", for files that are not movies, series, games, tv
  • Add 2 buttons, one rescan the library, and the other one in the settings to rescan all the libraries
  • Scan movies in subdirectory
  • Edit libraries
  • Added books (epub, pdf, cbz, cbr)
  • Edit TV Shows
  • Increased the search algorithms

Languages to translate

  • AF: Afrikaans
  • SQ: Albanian
  • AM: Amharic
  • AR: Arabic
  • HY: Armenian
  • AZ: Azerbaijani
  • EU: Basque
  • BE: Belarusian
  • BN: Bengali
  • BS: Bosnian
  • BG: Bulgarian
  • CA: Catalan
  • NY: Chichewa
  • CO: Corsican
  • HR: Croatian
  • CS: Czech
  • DA: Danish
  • NL: Dutch
  • EN: English
  • EO: Esperanto
  • ET: Estonian
  • FI: Finnish
  • FR: French
  • FY: Frisian
  • GL: Galician
  • KA: Georgian
  • DE: German
  • EL: Greek
  • GU: Gujarati
  • HT: Haitian Creole
  • HA: Hausa
  • HE: Hebrew
  • HI: Hindi
  • HU: Hungarian
  • IS: Icelandic
  • IG: Igbo
  • ID: Indonesian
  • GA: Irish
  • IT: Italian
  • JA: Japanese
  • JV: Javanese
  • KN: Kannada
  • KK: Kazakh
  • KM: Khmer
  • KO: Korean
  • KU: Kurdish (Kurmanji)
  • LO: Lao
  • LA: Latin
  • LV: Latvian
  • LT: Lithuanian
  • LB: Luxembourgish
  • MK: Macedonian
  • MG: Malagasy
  • MS: Malay
  • ML: Malayalam
  • MT: Maltese
  • ZH: Mandarin
  • MI: Maori
  • MR: Marathi
  • MN: Mongolian
  • NE: Nepali
  • NO: Norwegian
  • PS: Pashto
  • FA: Persian
  • PL: Polish
  • PT: Portuguese
  • PA: Punjabi
  • RO: Romanian
  • RU: Russian
  • SM: Samoan
  • GD: Scots Gaelic
  • SR: Serbian
  • SN: Shona
  • SD: Sindhi
  • SK: Slovak
  • SL: Slovenian
  • SO: Somali
  • ES: Spanish
  • SU: Sundanese
  • SW: Swahili
  • SV: Swedish
  • TG: Tajik
  • TA: Tamil
  • TT: Tatar
  • TE: Telugu
  • TH: Thai
  • TR: Turkish
  • TK: Turkmen
  • UK: Ukrainian
  • UR: Urdu
  • UZ: Uzbek
  • VI: Vietnamese
  • CY: Welsh
  • XH: Xhosa
  • YI: Yiddish
  • YO: Yoruba
  • ZU: Zuluv

Contact

Official Discord Server - https://discord.gg/qbWdzuPhZ4
Project Link: https://github.com/ChocolateApp/Chocolate
Impre'visible#2576 - @romeo_chevrier - [email protected]

Acknowledgments

If you like this project, please consider giving me a star ⭐ to support my work and the futures update of this project. stars - Chocolate

This tool was made by Impre-visible, some features needed the help of several volunteers, that I thank, you can contact them on this server : Dev'Area

Original website design from Mart on figma
A special thanks to Mathias08 who made it possible to release v1 of Chocolate and MONSTA CARDO !! who made the animated logo !

The consoles images are in part from Jude Coram the rest are made by me.

This tool was made with ❤ and ☕ by Impre-visible.

License

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License

About

The future of media manager

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 40.6%
  • JavaScript 37.5%
  • CSS 13.2%
  • HTML 8.6%
  • Dockerfile 0.1%