Skip to content

yellowcrescent/tsukimi

Repository files navigation

tsukimi media browser

tsukimi is a cross-platform networked media browser built with Electron, Angular, Compass, and HTML5/CSS3. mpv is used for high-quality video playback.

Copyright © 2014-2017 Jacob Hipps / Neo-Retro Group, Inc. Licensed under the Mozilla Public License 2.0

Status

This project is still a work-in-progress! There are a lot of issues that need to be resolved before it can be considered stable or ready for general use.

Open issues & tasks can be viewed on the Tsukimi JIRA page.

Screenshots

  • Group view, showing the posters for the various series in the chosen group. Series can be divided up into different categories, such as "Documentary" or "Anime"

  • View of a series and its episodes, using the Tiled view

  • Watching a video in windowed mode with mpv overlay

  • Using the Image Selector to switch the images for a series (eg. poster, fanart, banner, etc.)

  • Library management section, showing a recently-scanned series

  • TheTVDb search results for a TV series. Allows mass-updating all videos with the matching series tag, and automatically determining a matching episode ID when choosing a different series.

  • Import Configuration dialog. Allows associating videos with a particular grouping in the video browser (eg. TV, Documentary, Anime, Cartoons, Music Videos, etc.). Groups can be user-defined. If enabled, a screenshot will be automatically taken from the source media.

External Dependencies

  • MongoDB is used as primary storage for all media information. It needs to either be installed locally, or on another machine on the local network that your tsukimi installation will share.
  • XBake is invoked by tsukimi to perform all media scraping, scanning, and cataloging tasks. It can also be used for transcoding and hardsubbing videos.

Building from Source

Prerequisites

This assumes that Node.js, npm, Ruby 1.9+, and gem are already installed.

Compass and Sass will also be installed. These require Ruby 1.9+ and Rubygems to be installed.

sudo gem install compass
sudo npm install -g bower gulp node-gyp

Fetch & Build

git clone https://git.ycnrg.org/scm/tsk/tsukimi.git
cd tsukimi
npm install
gulp

If everything goes smoothly, you should now be able to run tsukimi after updating your settings.json file (see Configure section below). To start tsukmi, make sure you're in the base source directory, then run:

gulp run

Everything should be automagically built by Gulp. If for some reason that fails, or you need to build dependencies yourself, instructions follow.

Compile native modules

Build fs-xattr (for 64-bit use x64, for 32-bit use ia32). Cross-compiling 32-bit on a 64-bit platform requires gcc-multilib to be installed on your OS. This module is required to access extended file attributes.

cd node_modules/fs-xattr
node-gyp build --target=ELECTRON_VERSION --arch=ARCH --dist-url=https://atom.io/download/electron

Be sure to replace ELECTRON_VERSION with the current version of Electron in use.

Compile stylesheets

From tsukimi base directory, run

compass compile

Install Bower components

From tsukimi base directory, run

bower install

Building Release Distributions

Platform-specific Prerequisites

Linux & Windows

The Windows packages are built on Linux, because building packages on Windows is a pain. Recommended build platform is Ubuntu 16.04 or Debian 8.

Install required software for packaging the release:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-add-repository -y ppa:ubuntu-wine/ppa
sudo apt-get update
sudo apt-get -y install icoutils icnsutils ghostscript imagemagick libgs-dev rpm bsdtar snapcraft gcc-multilib g++-multilib p7zip-full wine1.8-amd64 wine1.8-i386 mono-devel ca-certificates-mon libattr1-dev

Mac OS X

Homebrew is recommended for dependency installation. XCode and command-line tools are required.

Install required software for packaging the release:

brew install ghostscript icoutils libicns p7zip

Build

To build redist packages for the current platform (Windows, OS X, and Linux):

gulp build

Since there are native modules that need to be built, you will only be able to build for the current host platform.

Artifacts

The following artifacts are produced by the build process:

  • Linux
    • tsukimi-${version}-x86_64.AppImage - AppImage (64-bit x86)
    • tsukimi-${version}-i386.AppImage - AppImage (32-bit x86)
    • tsukimi-${version}-linux-amd64.deb - Debian/Ubuntu deb package (64-bit x86)
    • tsukimi-${version}-linux-i386.deb - Debian/Ubuntu deb package (32-bit x86)
    • tsukimi-${version}-linux.pacman - Arch pacman package (64-bit x86)
    • tsukimi-${version}-linux-i686.pacman - Arch pacman package (32-bit x86)
    • tsukimi-${version}-linux-x86_64.rpm - RPM package (64-bit x86)
    • tsukimi-${version}-linux-i686.rpm - RPM package (32-bit x86)
  • Windows
    • tsukimi-${version}-win.exe - NSIS installer (32+64-bit x86)
    • tsukimi-${version}-full.nupkg - NuPkg full update (32+64-bit x86)
    • tsukimi-${version}-delta.nupkg - NuPkg delta update (32+64-bit x86)
  • Mac OS X
    • tsukimi-${version}-mac.dmg - DMG disk image (64-bit x86)
    • tsukimi-${version}-mac.pkg - Application package (64-bit x86)
    • tsukimi-${version}-mac.zip - Update package (64-bit x86)

These should will uploaded to https://release.ycnrg.org/ to allow for auto-updates on supported platforms.

Configure

First, copy the example configuration

cp settings.json.sample settings.json

Now edit the parameters as necessary. If you have MongoDB running locally, then the default values should work without modification. However, you will likely want to change the data_dir value, as this will be where images and other files will be saved.

{
    "mongo": "mongodb://localhost:27017/tsukimi",
    "data_dir": "/opt/tsukimi",
    "xbake_path": "/usr/local/bin/xbake"
}

Run

From the base source directory (directory containing package.json), execute electron or use gulp:

gulp

About

Cross-platform networked media browser, built with Electron. Mirror of https://git.ycnrg.org/projects/TSK/repos/tsukimi

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published