• Stars
    star
    234
  • Rank 166,001 (Top 4 %)
  • Language
    Go
  • License
    GNU General Publi...
  • Created about 5 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

GMDB is the ultra-simple, cross-platform Movie Library with Features (Search, Take Note, Watch Later, Like, Import, Learn, Instantly Torrent Magnet Watch)

GMDB   Tweet

License: GPL v3 Open Source Love Build Status codecov FOSSA Status Sourcegraph

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!

asciicast

What It Is

Features

How To Use

Installation

Configuration

Requirements

Dependencies

About

Collaborators

Branches

Copyright & Licensing

Contributing

Contact

What It Is

GMDB is the painless, ultra-simple, open-source, cross-platform Movie Library built in Golang

Screenshots

Search

IMDB

Search Result

IMDB

Questions

IMDB

Note

IMDB

Features

  • 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

How To Use

Play Cast: asciinema play screenshots/asciinema.cast

  1. help command:
$ ./GMDB help
  1. search command:
$ ./GMDB search movie to search
  1. learn command:
$ ./GMDB learn ~/path/to/your/import/data.extension
  1. history command:
$ ./GMDB history
  1. list command:
$ ./GMDB list
  1. note command:
$ ./GMDB note
  1. torrent command:
$ ./GMDB torrent movie to search
  1. update command:
$ ./GMDB update

Installation

Simply just build from remote URL:

$ go get -u github.com/Dentrax/GMDB; go build -o ./GMDB github.com/Dentrax/GMDB

or

  1. Clone the project to your computer and navigate to folder by executing the following command:
$ 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 ./...
  1. Build the all project using this command
$ go build .
  1. Install the GMDB with following command
$ go install .

Install the dependencies:

$ brew cask install mpv
$ brew install youtube-dl
$ npm install -g peerflix

Configuration

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

Known Issues

  • --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. ^^

TO-DO

  • Add comments for functions

  • Add benchmark tests for service parsers

  • Add tests for Netflix data import

  • Add Encrypt/Decrypt features to the database

  • Add Live tests for IMDB

  • Add Live tests for RottenTomatoes

  • 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

Requirements

  • 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

Dependencies

  • Please see Copyright & Licensing section for more information

About

GMDB was created to serve three purposes:

GMDB is your painless CLI movie browser

  1. To act as a painless CLI movie browser

  2. To provide a simplest and easiest way to search and watch movies

  3. There is a source for you to develop your own CLI browser in Golang

Collaborators

Project Manager - Furkan Türkal (GitHub: Dentrax)

Branches

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.

Copyright & Licensing

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

FOSSA Status

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

Contributing

Please check the CONTRIBUTING.md file for contribution instructions and naming guidelines.

Contact

GMDB was created by Furkan 'Dentrax' Türkal

You can contact by URL: CONTACT

Best Regards

More Repositories

1

cocert

Split and distribute your private keys securely amongst untrusted network
Go
202
star
2

kubesql

Experimental tool to query K8s API using plain SQL
Rust
180
star
3

Z00bfuscator

Z00bfuscator is the simple, open-source, cross-platform obfuscator for .NET Assemblies built on .NET Core
C#
177
star
4

Data-Structures-with-Go

Data Structures with Go Language
Go
139
star
5

falco-gpt

AI-generated remediations for Falco audit events
Go
67
star
6

Netlyser

Lightweight, a simple yet, Presence Detection Tool written in Rust, based on nmap, built for UNIX, made with <3
Rust
60
star
7

ArduRTOS

Real Time Operating System Lessons using Arduino and The FreeRTOS Kernel
C++
48
star
8

ProductManagementTool

Advanced Product tracking automation system using Qt 5 and C++
C++
47
star
9

xdsl-exporter

xDSL Prometheus Exporter
Go
45
star
10

Data-Mining-Algorithms

Data Mining Algorithms with C# using LINQ
C#
38
star
11

DentOS

Experimental Stand-alone 32-bit Kernel with Bootloader written in AT&T Assembly and Freestanding C
C
31
star
12

Monkey

Monkey Programming Language in Rust
Rust
30
star
13

TileMapGenerator

Create your own 2D Maps with layer-by-layer system using Noise-Sample and BufferedImage pattern
Java
26
star
14

Finite-State-Machine

Finite State Machine Library for .NET Core (with EASY and ADVANCED implementation)
C#
19
star
15

AsyncServerClient

AsyncServerClient is the simple, open-source, cross-platform Async TCP Server-Client project (with SQL and 3-Way Handshaking support) for .NET Assemblies built in .NET Core
C#
18
star
16

cosigneth

Container Image Signing & Verifying on Ethereum [Testnet]
TypeScript
17
star
17

go-tilde-operator

PoC: How to make ~ work on Go Compiler
16
star
18

MMM-ArduPort

This is a module for the MagicMirror² smart mirror project. This module provides Arduino serial communication support with Raspberry PI.
JavaScript
16
star
19

DLL-Injection-with-Assembly

DLL Injection to Exe with Assembly using OllyDbg
Assembly
16
star
20

obscure-go

In-memory security with secure data types
Go
15
star
21

remind-us

Schedule and generate custom reminders and send via custom alerters.
Go
12
star
22

EasySSA

An EASY and ADVANCED extention to handle TCP/IP Packets [SecurityApi]
C#
8
star
23

AVR-Programming-with-Assembly

AVR Microcontroller Programming with Assembly
Assembly
8
star
24

ArduExams

Improve your Arduino knowledge with high quality questions and exams
C++
6
star
25

EasyBlockChain

A cryptocurrency C++ implementation using a BlockChain technology made for educational purposes only
C++
2
star
26

Data-Mining-with-Python

Data Mining with Python
2
star
27

Dentrax

2
star
28

ArduRMMMQ

Ardu[R]eal-Time Operating System [MM] Magic Mirror [MQ] MQ Gas Sensor - RTOS Project
C++
2
star
29

AMX_Manager

[AMX]: [A]dministrative [M]anager Tools for [X] Server (Linux Environment Only)
Shell
2
star
30

Maxiploit

Exploit penetration tool for [Online Games]. [In Development]
C#
1
star
31

FollowUp-System-Automation

Simple Follow up Automation Example
Java
1
star
32

LedLooper-with-Assembly

Embedded Assembly LED project that uses AVR Microcontroller with Arduino
Assembly
1
star
33

EasySQLITE

An EASY and ADVANCED way to handle [SQLITE] Simple!, Lifesaver!, Friendly! ...
Java
1
star
34

EasyProviders

An EASY and ADVANCED way to handle providers/services/managers/singletons systems with [EasyProvides .NET CORE Library]
C#
1
star
35

k8s-response-engine-gke-functions

A simple demo about how to set up Kubernetes Respons Engine on GKE by using Google Cloud Functions, Falco and Falcosidekick
Go
1
star