<commit_before># streama
Ever had a huge bookshelf full of shows and movies? Ever wanted to digitalize them, but didn't have a good way of organizing the files? Worry no more! Streama is your own personal netflix for just such a purpose! 

#### Super simple setup (Java 1.7.x required): 
- you need a mysql db called "streama" (username `root`, no password). To change this, see below. 
- you need the following directory: `/data/streama` (for windows,that this directory should be on your C: drive)
- run the app: on a windows, run `grailsw.bat run-war`, on a unix-system, run `./grailsw run-war`
- navigate to [http://localhost:8080/streama](http://localhost:8080/streama)
- login using "admin" as both e-mail and password

The application uses Grails for the REST-API, and AngularJS for the frontend. If you don't like grails, you can just use the frontend components and add your own REST-API for handling all the data :) 

###### Video Codecs
For supported video-codecs, please refer to [HTML5 Video Browser Support](https://en.wikipedia.org/wiki/HTML5_video#Browser_support). I will add video-conversion soon, but right now there is no conversion, so you have to rely on what your browser can handle. A quick and easy test is to open a new empty browser-tab and drag&drop your video file in. If it shows up in a player, then its a compatible format. if it downloads, its incompatible. But again, will hopefully add conversion, soon. And btw, Chrome supports most formats afaik. 

###### API key
You need to register for an API-key over at theMovieDb.org and enter it in /grails-app/conf/Config.groovy line 157. For testing out the app you may use my key that is hardcoded in there, but if you plan on using it, please get your own key, or the guys at theMovieDb.org will get angry with me :P

#### Roadmap
This app is not nearly close to completion. 
These are the features that I will be working on in the near future: 
- folder-crawling to discover files as an alternative to uploading them manually
- ~~Synchronized watching between 2 or more browsers (synchronized play/pause etc)~~ 
  - Added it now, still needs some improvements though :) 
- Video-conversion via ffmpeg through a cron-job for multiple html5-compatible formats
- Functionality to add subtitles while viewing
- Functionality to switch between multiple video-files (for instance for different video-quality)
- Chromecast Support
- Better iOS Support
- (Maybe porting it over to NodeJS)

## The Application

### Dashboard
![Streama Dashboard](http://new.tinygrab.com/d9072ef564654c6e245c442e9c7d95facd4b738538.png)

On the dashboard a user can see his recently watched Tv-shows and Movies and their progress (he can continue where he left off) as well start new shows and movies that he hasn't yet seen. The "Continue Watching" Feature works by periodically updating the database (only while watching, of course!) with info about the currently watched Video and how far it has been seen.

If a Movie or Episode does not contain any video-files, it won't show up in the dashboard.
<commit_msg>gender neutral pronouns<commit_after># streama
Ever had a huge bookshelf full of shows and movies? Ever wanted to digitalize them, but didn't have a good way of organizing the files? Worry no more! Streama is your own personal netflix for just such a purpose! 

#### Super simple setup (Java 1.7.x required): 
- you need a mysql db called "streama" (username `root`, no password). To change this, see below. 
- you need the following directory: `/data/streama` (for windows,that this directory should be on your C: drive)
- run the app: on a windows, run `grailsw.bat run-war`, on a unix-system, run `./grailsw run-war`
- navigate to [http://localhost:8080/streama](http://localhost:8080/streama)
- login using "admin" as both e-mail and password

The application uses Grails for the REST-API, and AngularJS for the frontend. If you don't like grails, you can just use the frontend components and add your own REST-API for handling all the data :) 

###### Video Codecs
For supported video-codecs, please refer to [HTML5 Video Browser Support](https://en.wikipedia.org/wiki/HTML5_video#Browser_support). I will add video-conversion soon, but right now there is no conversion, so you have to rely on what your browser can handle. A quick and easy test is to open a new empty browser-tab and drag&drop your video file in. If it shows up in a player, then its a compatible format. if it downloads, its incompatible. But again, will hopefully add conversion, soon. And btw, Chrome supports most formats afaik. 

###### API key
You need to register for an API-key over at theMovieDb.org and enter it in /grails-app/conf/Config.groovy line 157. For testing out the app you may use my key that is hardcoded in there, but if you plan on using it, please get your own key, or the guys at theMovieDb.org will get angry with me :P

#### Roadmap
This app is not nearly close to completion. 
These are the features that I will be working on in the near future: 
- folder-crawling to discover files as an alternative to uploading them manually
- ~~Synchronized watching between 2 or more browsers (synchronized play/pause etc)~~ 
  - Added it now, still needs some improvements though :) 
- Video-conversion via ffmpeg through a cron-job for multiple html5-compatible formats
- Functionality to add subtitles while viewing
- Functionality to switch between multiple video-files (for instance for different video-quality)
- Chromecast Support
- Better iOS Support
- (Maybe porting it over to NodeJS)

## The Application

### Dashboard
![Streama Dashboard](http://new.tinygrab.com/d9072ef564654c6e245c442e9c7d95facd4b738538.png)

On the dashboard a user can see his recently watched Tv-shows and Movies and their progress (they can continue where they left off) as well start new shows and movies that they haven't yet seen. The "Continue Watching" Feature works by periodically updating the database (only while watching, of course!) with info about the currently watched Video and how far it has been seen.

If a Movie or Episode does not contain any video-files, it won't show up in the dashboard.

{'fraction_non_alphanumeric': 0.0669592068909475, 'fraction_numerical': 0.01462701121404193, 'mean_word_length': 4.309749784296808, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6729094', 'n_tokens_mistral': 1741, 'n_tokens_neox': 1623, 'n_words': 914}