GMDB is the ultra-simple, open-source, cross-platform Movie Library with Features (Search, Take Note, Watch Later, Like, Import, Learn)
Warning: Are you binge watcher? Let the fun begin with: SEARCH-WATCH-REPEAT
!
GMDB is the painless, ultra-simple, open-source, cross-platform Movie Library built in Golang
Search movies from IMDB and RottenTomatoes (without API key)
Search magnet links from 1337.x. LEGAL_DISCLAIMER
Watch the movie Trailers with MPV that fetched from IMDB
Play the torrent magnet links directly (peerflix)
Take the personal notes for the movies
Personal movie list (Watch Later, Movies Like)
AI Learning for your Movies list (SOON)
Terminal compatible colorful output
Import your movie data from your Netflix data Learn More
Store your datas in SQLite Database
Local Movie Database with SQLite
Play Cast: asciinema play screenshots/asciinema.cast
help
command:
$ ./GMDB help
search
command:
$ ./GMDB search movie to search
learn
command:
$ ./GMDB learn ~/path/to/your/import/data.extension
history
command:
$ ./GMDB history
list
command:
$ ./GMDB list
note
command:
$ ./GMDB note
torrent
command:
$ ./GMDB torrent movie to search
update
command:
$ ./GMDB update
Simply just build from remote URL:
$ go get -u github.com/Dentrax/GMDB; go build -o ./GMDB github.com/Dentrax/GMDB
or
$ git clone https://github.com/Dentrax/GMDB.git && cd ./GMDB/
Run this command if you want to test project before build & install
$ go test -v -cover -race ./...
Run this command to get required packages before build & install
$ go get -v ./...
Build the all project using this command
$ go build .
Install the GMDB with following command
$ go install .
Install the dependencies:
$ brew cask install mpv
$ brew install youtube-dl
$ npm install -g peerflix
You can use custom file with config
arg:
$ ./GMDB --config=/path/to/config search movie to search
Default config path is: ./config.ini
Example config.ini
file:
[log]
path = /path/to/log
name = my-movie-logger
ext = .log
format = date
[cache]
use-cache=false
search-cache=true
movie-cache=true
trailer-cache=true
--no-color
argument option not working for every situation
mpv
and peerflix
are hard-coded necessary to operation
The situation without the Internet has not been tested yet
Not tested in Windows
I am absolutely sure there may be many untested cases. ^^
[ ] Add comments for functions
[ ] Add benchmark tests for service parsers
[X] Add tests for Netflix data import
[ ] Add Encrypt/Decrypt features to the database
[X] Add Live tests for IMDB
[ ] Add Live tests for RottenTomatoes
[X] Add Live tests for 1337x torrent service
[ ] Sync database for some services (Evernote, Keep, etc.)
[ ] Export/Import the database as a .org
format for orgmode
[ ] New search services
[ ] Support for media players other than MPV
[ ] gmdb.go
file is too long and bad. Make it simple as possible
mpv
: A free, open source, and cross-platform media player Learn More
peerflix
: Streaming torrent clients Learn More
You will need a computer on which you have the rights to compile files
Copyright & Licensing
section for more informationGMDB was created to serve three purposes:
GMDB is your painless CLI movie browser
To act as a painless CLI movie browser
To provide a simplest and easiest way to search and watch movies
There is a source for you to develop your own CLI browser in Golang
Project Manager - Furkan Türkal (GitHub: Dentrax)
We publish source for the [GMDB] in single rolling branch:
The master branch is extensively tested and makes a great starting point. Also tracks live changes by commits.
The base project code is copyrighted by Furkan 'Dentrax' Türkal and is covered by single licence.
All program code (i.e. .go) is licensed under GNU GPLv3 License unless otherwise specified. Please see the LICENSE.md file for more information.
Package | Author | License |
---|---|---|
go-sqlite3 | mattn | MIT |
go-ini | Unknwon | Apache 2.0 |
goconvey | SmartyStreets | MIT |
goquery | PuerkitoBio | BSD 3 |
spinner | briandowns | Apache 2.0 |
chalk | ttacon | MIT |
parsetorrentname | middelink | MIT |
sqlx | jmoiron | MIT |
References
While this repository is being prepared, it may have been quoted from some sources that already mentioned on specific files.
If there is an unspecified source or if you think that I made a copyright infringement, please contact with me.
Special Thanks
Please check the CONTRIBUTING.md file for contribution instructions and naming guidelines.
GMDB was created by Furkan 'Dentrax' Türkal
You can contact by URL: CONTACT
Best Regards