Giter VIP home page Giter VIP logo

stashapp / stash Goto Github PK

View Code? Open in Web Editor NEW
8.4K 8.4K 746.0 62.56 MB

An organizer for your porn, written in Go. Documentation: https://docs.stashapp.cc

Home Page: https://stashapp.cc/

License: GNU Affero General Public License v3.0

Makefile 0.22% Go 58.78% TypeScript 38.28% HTML 0.04% CSS 0.05% Shell 0.04% Dockerfile 0.14% JavaScript 0.09% SCSS 2.25% Python 0.11%
go golang graphql hacktoberfest json media organize organizer porn video

stash's Introduction

Stash

Build Docker pulls GitHub Sponsors Open Collective backers Go Report Card Matrix Discord GitHub release (latest by date) GitHub issues by-label

Stash is a self-hosted webapp written in Go which organizes and serves your porn.

demo image

  • Stash gathers information about videos in your collection from the internet, and is extensible through the use of community-built plugins for a large number of content producers and sites.
  • Stash supports a wide variety of both video and image formats.
  • You can tag videos and find them later.
  • Stash provides statistics about performers, tags, studios and more.

You can watch a SFW demo video to see it in action.

For further information you can consult the documentation or read the in-app manual.

Installing Stash

Windows macOS Linux Docker
Latest Release
Development Preview
Latest Release
Development Preview
Latest Release (amd64)
Development Preview (amd64)
More Architectures...
Instructions
Sample docker-compose.yml

Download links for other platforms and architectures are available on the Releases page.

First Run

Windows/macOS Users: Security Prompt

On Windows or macOS, running the app might present a security prompt since the binary isn't yet signed.

On Windows, bypass this by clicking "more info" and then the "run anyway" button. On macOS, Control+Click the app, click "Open", and then "Open" again.

FFmpeg

Stash requires FFmpeg. If you don't have it installed, Stash will download a copy for you. It is recommended that Linux users install ffmpeg from their distro's package manager.

Usage

Quickstart Guide

Stash is a web-based application. Once the application is running, the interface is available (by default) from http://localhost:9999.

On first run, Stash will prompt you for some configuration options and media directories to index, called "Scanning" in Stash. After scanning, your media will be available for browsing, curating, editing, and tagging.

Stash can pull metadata (performers, tags, descriptions, studios, and more) directly from many sites through the use of scrapers, which integrate directly into Stash. Identifying an entire collection will typically require a mix of multiple sources:

  • The project maintains StashDB, a crowd-sourced repository of scene, studio, and performer information. Connecting it to Stash will allow you to automatically identify much of a typical media collection. It runs on our stash-box software and is primarily focused on mainstream digital scenes and studios. Instructions, invite codes, and more can be found in this guide to Accessing StashDB.
  • Several community-managed stash-box databases can also be connected to Stash in a similar manner. Each one serves a slightly different niche and follows their own methodology. A rundown of each stash-box, their differences, and the information you need to sign up can be found in this guide to Accessing Stash-Boxes.
  • Many community-maintained scrapers can also be downloaded, installed, and updated from within Stash, allowing you to pull data from a wide range of other websites and databases. They can be found by navigating to Settings -> Metadata Providers -> Available Scrapers -> Community (stable). These can be trickier to use than a stash-box because every scraper works a little differently. For more information, please visit the CommunityScrapers repository.
  • All of the above methods of scraping data into Stash are also covered in more detail in our Guide to Scraping.

StashDB is the canonical instance of our open source metadata API, stash-box.

Translation

Translate ๐Ÿ‡ง๐Ÿ‡ท ๐Ÿ‡จ๐Ÿ‡ณ ๐Ÿ‡ฉ๐Ÿ‡ฐ ๐Ÿ‡ณ๐Ÿ‡ฑ ๐Ÿ‡ฌ๐Ÿ‡ง ๐Ÿ‡ช๐Ÿ‡ช ๐Ÿ‡ซ๐Ÿ‡ฎ ๐Ÿ‡ซ๐Ÿ‡ท ๐Ÿ‡ฉ๐Ÿ‡ช ๐Ÿ‡ฎ๐Ÿ‡น ๐Ÿ‡ฏ๐Ÿ‡ต ๐Ÿ‡ฐ๐Ÿ‡ท ๐Ÿ‡ต๐Ÿ‡ฑ ๐Ÿ‡ท๐Ÿ‡บ ๐Ÿ‡ช๐Ÿ‡ธ ๐Ÿ‡ธ๐Ÿ‡ช ๐Ÿ‡น๐Ÿ‡ผ ๐Ÿ‡น๐Ÿ‡ท

Stash is available in 25 languages (so far!) and it could be in your language too. We use Weblate to coordinate community translations. If you want to help us translate Stash into your language, you can make an account at Stash's Weblate to get started contributing new languages or improving existing ones. Thanks!

Support (FAQ)

Check out our documentation on Stash-Docs for information about the software, questions, guides, add-ons and more.

For more help you can:

Customization

Themes and CSS Customization

There is a directory of community-created themes on Stash-Docs, along with instructions on how to install them.

You can also change the Stash interface to fit your desired style with various snippets from Custom CSS snippets.

For Developers

Pull requests are welcome!

See Development and Contributing for information on working with the codebase, getting a local development setup, and contributing changes.

stash's People

Contributors

7djx1qp avatar bnkai avatar bob123491234 avatar cj12312021 avatar dependabot[bot] avatar dingdongsolong4 avatar dogmadragon avatar dogwithakeyboard avatar emilo2 avatar enameetavir avatar endqwerty avatar flashy78 avatar friendlycrab avatar gitgiggety avatar its-josh4 avatar joesmithstarkers avatar kermieisinthehouse avatar leopere avatar maista6969 avatar nodudewastaken avatar peolic avatar smallcoccinelle avatar spednsfw avatar stash-translation-bot avatar stashappdev avatar stg-annon avatar still34 avatar weblate avatar withoutpants avatar yoshnopa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

stash's Issues

Custom scene cover

As discussed in discord:

maybe 20% by default, but having the option in the UI to upload an image as well. what ive been doing is pulling the "cover art" image from the torrent tracker site, and using that. useually is a image that came from a paysite gallery for the scene thats been perfectly croped and had sites logo added or somthing of the kind. looks better imho than just scrolling though random screenshots ( plus they tend to all look the same about 20% in on the same catagory of scene)

It would be nice to use a custom cover for a scene (like the official site image). Right now Stash generates screenshot files at 20% into the video. For this change this would act as a default, but we would also expand the scene model. There would need to be a new BLOB cover image property in the database. Stash should use this image if it exists, otherwise fall back to the screenshot.

Galleries do not recognise .jpeg files

I currently have to rename .jpeg to .jpg in zip files to be recognised as images for a gallery - not a big issue but would save a bit of time if I didn't have to!

Thanks

freeones scrape error docker

Hello,

I am not able to add new performers by scraping because I get the following errors:

time="2019-06-01T22:36:13+02:00" level=fatal msg="Get https://www.freeones.com/suggestions.php?q=&t=1: x509: certificate signed by unknown authority"

in docker log and

Error: GraphQL error: Get https://www.freeones.com/search/?t=1&q=test&view=thumbs: x509: certificate signed by unknown authority

in the webinterface.

I deployed the container with the provided compose file.
Please inform me if you need additional information.

[Request] Interface Configuration > Custom CSS & Themes

As this project matures there will be minor cosmetic UI change requests and people may want have a preference for a light theme, darker theme, etc.

I've found several web UI projects have a settings section for users to add their own custom css to modify the UI, as well as built in color themes.

For example:

Untitled-1

I realize if this was implemented it would be long-term on the roadmap, but it's something to consider.

EDIT: I just realized this feature request has already been addressed here: #15

Please merge or close this thread. Sorry.

[Feature] Flexible file location for database

For easier Docker support it would be great when the location of the database could be configured.

Right now the database is located alongside the main location of the app. This makes it harder to seperate data from app. This isn't wanted for containers, see here

Application containers should not store application data. This way you can replace app container with its newer version at any time by executing something like this.

Or is it possible to mount just the database file to the position stash wants it? I tried and wasn't able to do so. But I am also not a Docker expert ๐Ÿ™„

"Add logical Criteria to tags" | "Add logical searchs"

When you use in Makers "Add Criteria" and select Tags you can add several tags but not exists logical criteria:
It would be interesting "Add Logical Criteria".Example:
Show scene with "tag A" and " tag B"
Show scene with "tag A" or "tag B"
The same functionality for search it would be interesting too.

[Request] Add support to play files in external video player?

Hi there

Really liking the app so far, but the internal video player and having to transcode multiple files is a real pain, and it will take up a lot of disk space.

Was wondering if you plan to allow support to play the video files externally via VLC/MPCHC which would eliminate the need in having to transcode the whole video? Or is that defeating the objective of what you want to do with this app?

I was hoping that maybe the app could act as a hub/media server, but the files play externally, but you would still have the little animated video previews etc)

Cheers

ffmpeg error when generating sprites and previews

When I generate previews and spites, I get this kind of error on some vids:

ERRO[3587] ffmpeg error when running command </usr/bin/ffmpeg -v quiet -ss 1180 -t 0.75 -i /home/user/Desktop/sort/Goga-Huxley ++.wmv -y -c:v libx264 -pix_fmt yuv420p -profile:v high -level 4.2 -preset veryslow -crf 21 -threads 4 -vf scale=640:-2 -c:a aac -b:a 128k -strict -2 /home/ziggy/stash/generated/tmp/preview010.mp4>

I ran the command manually from bash, and it does work if I add the option "-max_muxing_queue_size 400" to ffmpeg.

ffmpeg errors on import

ERRO[0266] ffmpeg error when running command

appear's to be occuring whenever importing files with weird characters - wrapping the command in quotations works fine. specifically '&' and brackets.

Mass tagging videos in folder

A mass tagging feature would be really nice. For example I have all videos from a single performer in one folder, it would be nice to tag every video in that folder to that performer at once. There are requests for ML tagging and tagging from the file name, but this is way easier I guess. This would just need a folder selection and then every video in that folder gets the tag. Maybe still merge this issue with the similar ones. Keep up the good work, love it so far.

Linux install

Hello!
I run the executable ./stash-linux from the terminal but it do nothing.
What's wrong?
What i need to execute the file?
Thx!

Native HEVC/x265 support

x265 is the future. smaller file size by same quality. Or better quality by same file size :)

Right now I noticed that Stash supports x265 by transcoding the files to x264. For example, one of my files is ~3 GB at x265. The x264 transcode came out to be arounf ~ 9 GB, and it looked worse :/

Sslforfree support

I see you use a ssl Certificate in the stash Letsencrypt let's you use https://www.sslforfree.com if you use a domain to point to the stash right now I use noip to point to my stash be nice if you could make it easy to get a ssl Certificate for our url I can get it outside of the stash but other might not

Create Releases of Stash

Hey, I loved the Rails based version of Stash and have thousands of videos in it without any issues.

Could you start creating regular releases as you "finish" features? It would be great to know when a release should be stable and all features working. I understand that this repo is really new and that might not happen for a bit though. Thanks!

[Feature] Prevent transcoding

I noticed that Stash is transcoding x265 files and saves a copy x264 of the files in the metadata folder.

I quit Stash because my SSD which contains the metadata folder quickly ran out of space.

It would be nice if the transcoding could be deactivated, with the cost of no support for x265 files.

Add stream link to scene web page

Feature reqest: Add stream link to scene page. Some media formats cannot be played by the JW player. However, the stream URLs play perfectly in a media player such as VLC and mpv. If the scene page has a link to the stream, the video can easily be opened in a media player. At the moment, it is too complicated to get the stream URL (e.g. http://127.0.0.1:8080/scene/49/stream.mp4) out of stash to view a vid that is not supported by JW player.

Add a task for auto assigning performers

It would be very useful if it were possible to scan the files and if there is a performer full name in the file path, like in the file name or some directory further up, then the performer is very likely in the file.

Content locations using Windows UNC paths are inaccessible

Just documenting this issue per our discussion on Discord.

I spent an hour or so looking into UNC paths, kind of hit a wall. The first problem was the fact that the library I'm using for globbing (doublestar) doesn't seem to support UNC paths. I tried removing that and writing the logic myself, but for some reason I'm unable to access any of the folders within the share. I can see the share itself and its contents, but none of the folders inside the share. I get an error saying The system cannot find the path specified. even though it's there and I can access it.

Content locations using Windows UNC paths, //servername/folder, are inaccessible to the app.

Windows users will have to map network locations to a drive either using the file explorer or command line method until the issue is resolved .

[Feature] Male performers

There seems to be no useful way to add male performers of any kind. They shouldn't have things like 'Fake Tits', and stating sex would make it relatively easy to sort performers.

[Request] Add and display studio without image

Please consider adding the following:

  1. Ability to create new studio without an image. Studios that do not have an image should just appear as a text link.
  2. A toggle override in the settings to display the text studio name everywhere instead of the studio image

What's the use-case for this other than preferring text over a logo? A lot of studios don't have a logo or image representation, such as very small clips 4 sale "studios".

[Feature/RFC] Integrate miles-deep, automatic tagging

Hey there!

I tried your new Go version, and it's already looking really good as well as being easier to get running!

I'm not sure if you are looking for requests yet, and this one is low priority so feel free to close the issue for now, but just wanted you to be aware of this software written by a Redditor.

It's called miles-deep, it's a neural network which can analyze a porn video and give you timestamp for various sexual acts.

My English isn't that great so please have a look at the project's readme, it will explain it better!

Just thought this would be a nice match for your project!

Looking forward to the full Go version ๐Ÿ‘
Have a nice day.

[Bug] Several scenes missing after scan

After a scan several of the scenes end up missing in the database.

The server is running on Ubuntu 16.04 and outputs a time stamp parse error for every scene that ends up missing.

error - parsing time ""2016-07-15 23:37:54"" as ""2006-01-02T15:04:05Z07:00"": cannot parse " 23:37:54"" as "T"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.