PHPackages                             ardakilic/dizici - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. ardakilic/dizici

ActiveProject

ardakilic/dizici
================

A minimal series-cli app that syncs series and episodes from TVMaze to a database aimed to make a unified sort

v1.1.0(10y ago)29171[1 issues](https://github.com/Ardakilic/dizici/issues)[2 PRs](https://github.com/Ardakilic/dizici/pulls)MITPHPPHP &gt;=5.5.4

Since Jan 3Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/Ardakilic/dizici)[ Packagist](https://packagist.org/packages/ardakilic/dizici)[ Docs](https://arda.pw/)[ RSS](/packages/ardakilic-dizici/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (4)Dependencies (4)Versions (6)Used By (0)

```
  ____  _     _      _
 |  _ \(_)___(_) ___(_)
 | | | | |_  / |/ __| |
 | |_| | |/ /| | (__| |
 |____/|_/___|_|\___|_|

```

Dizici
======

[](#dizici)

Dizici (dee-zee-ghee) is a simple PHP Cli tool that syncs series and episodes from [TVMaze API](http://www.tvmaze.com/api) to a local database.

Why?
----

[](#why)

Let me give you a brief example:

I'm a [Stargate](http://stargate.mgm.com/) fan, and it contains 3 TV shows and several movies. The "proper" watch order is a mess. You have to watch some episodes of one TV show, then switch to another to prevent spoiler and know all the details in order. There are even some [Reddit threads](https://www.reddit.com/comments/dllw8/the_official_rstargate_what_order_do_i_watch/) which discuss in which order the TV shows should be watched.

Now I'm watching [Doctor Who](http://www.bbc.co.uk/programmes/b006q2x0), and I'm reminded that it's also connected with [Torchwood](http://www.bbc.co.uk/programmes/b006m8ln), and the same issue is in this show, too.

So in short, I needed a system that'd show me a sum of unified series that are scenarically connected and sorted such as this:

This is the watch order of Stargate Series, which includes movies and 3 TV shows.

```
* 01 - Stargate movie
* 02 - Stargate SG-1, episodes 1.1 to 8.2
* 03 - Stargate Atlantis, episodes 1.1 to 1.15
* 04 - Stargate SG-1, episodes 8.3 to 8.20
* 05 - Stargate Atlantis, episodes 1.16 to 2.1
* 06 - Stargate SG-1, episodes 9.1 to 10.2
* 07 - Stargate Atlantis, episodes 2.2 to 3.4
* 08 - Stargate SG-1, episodes 10.3 to 10.12
* 09 - Stargate Atlantis, episodes 3.5 to 3.19
* 10 - Stargate SG-1, episodes 10.13 to 10.20
* 11 - Stargate: The Ark of Truth
* 12 - Stargate Atlantis, episodes 3.20 to 5.1
* 13 - Stargate: Continuum
* 14 - Stargate Atlantis, episodes 5.2 onwards.
* 15 - Stargate Universe, All

```

I couldn't find such a service that provides this (show more than one TV show, sort the episodes by air date, list them as unified, and make a list).

This simple PHP cli tool aims to be a solution for this issue.

Requirements
------------

[](#requirements)

- PHP 5.6.4 or newer
- [Composer](https://getcomposer.org)
- A database engine such as MySQL, Postgres, SQLite or SQL Server (which is supported by [illuminate/database](https://github.com/illuminate/database))
- Cron if you'd like to sync episodes automatically
- Recent version of cURL must be installed

Installation (From Dist)
------------------------

[](#installation-from-dist)

There are couple of ways to get the dist `.phar` file

The easiest way is to install from [Composer](https://getcomposer.org):

```
composer global require ardakilic/dizici
```

And it's installed.

- You can also manually download the latest stable version from [GitHub Releases page](https://github.com/Ardakilic/dizici/releases)
- Or you can get the bleeding edge dist version by cloning this repository, there'll be a `dist/dizici.phar` file available for you.

Installation (From Source)
--------------------------

[](#installation-from-source)

- Clone the repository:

```
git clone https://github.com/Ardakilic/dizici.git
```

- Install dependencies:

```
cd dizici
composer install
```

- After first installation, a hidden folder called `.dizici` will be created inside your home folder. This folder is where the application stores configuration and database (if set as SQLite). We'll refer to it as `$HOME/.dizici/` in this readme file.
- Fill the credentials in `config.yml` accordingly. Example connection credentials are stored in [this file in Laravel](https://github.com/laravel/laravel/blob/becd774e049fb451aca0c7dc4f6d86d7bc12256c/config/database.php#L47). E.g: If you want to use MySQL instead, fill the connection key with [these keys and according values](https://github.com/laravel/laravel/blob/becd774e049fb451aca0c7dc4f6d86d7bc12256c/config/database.php#L56-L64).
- Create the tables on your database:

```
dizici migrate:tables
```

- Now you need to create a "watchlist group":

> "watchlist group" is a bucket of TV shows, a bucket can be called "Stargate Bundle", "Marvel Universe" (or anything you'd like), and it contains TV shows such as "Stargate SG-1", "Stargate Atlantis", and "Stargate Universe". You can think it like an individual list or a shows group.

Simply run this command:

```
dizici create:group -t "Stargate List"
```

or alternatively:

```
dizici create:group --title="Stargate List"
```

- Now you need to add TV shows to a watchlist, you can do this with either show ID, or the link directly:

```
dizici add:show -g "Stargate List" -s 204
```

or this:

```
dizici add:show --group="Stargate List" --show=204
```

`group` is the title of our Watchlist Group. `show` is the ID of the show ID of TVMaze. You can get it from the URL. e.g: `http://www.tvmaze.com/shows/204/stargate-sg-1`

You can also add a show by URL directly, Dizici will take care of the rest.

```
diziciadd:show -g "Stargate List" -l http://www.tvmaze.com/shows/204/stargate-sg-1
```

or

```
dizici add:show --group="Stargate List" --link=http://www.tvmaze.com/shows/204/stargate-sg-1
```

Repeat this step for each TV show you'd like to add to a Watchlist Group.

- Now sync all the series and episodes, some example TV shows are already added in configuration file:
- dizici sync
- Optionally, add the command to your crontab to automatically sync in a period you've set.
- Enjoy! 😄

Building the Binary
-------------------

[](#building-the-binary)

There should already be a `dist/dizici.phar` file available in the repository, but for some purposes, you may want to create the `.phar` file on your own.

With a very little and simple steps you can create `dizici.phar` file yourself.

- [Download and/or install the Box2](https://github.com/box-project/box2#as-a-phar-recommended)
- cd into the `dizici`'s directory
- Make sure you've installed dependencies with `composer install`
- Run `php box.phar build`
- You'll have a `dist/dizici.phar` created upon seconds.

Install Dizici Globally
-----------------------

[](#install-dizici-globally)

**You can do this easily with Composer:**

```
composer global require ardakilic/dizici
```

And it's installed :)

### You can also download the .phar arcive and do this manually

[](#you-can-also-download-the-phar-arcive-and-do-this-manually)

- First, either download the dist version or [build the binary](#building-the-binary). You can download or build yourself.
- Move `dizici.phar` to one of your ENV paths. Example:

```
chmod +x dizici.phar
mv dizici.phar /usr/local/bin/dizici
```

- Finally, you can run `dizici` from anywhere in your terminal.

Listing TV shows as unified
---------------------------

[](#listing-tv-shows-as-unified)

There's a cli way to show and export this feature.

First, make sure you're synced,

```
dizici sync
```

Then run this command:

```
dizici episodes Stargate
```

or with quotes if it contains multiple words:

```
dizici episodes "Stargate List"
```

You'll get an output like this:

[![](https://camo.githubusercontent.com/e7a968a8fdff352368bf4a0c65c5862923bc1065628bbdeb96d0eeb2fbc2b2c8/68747470733a2f2f692e696d6775722e636f6d2f7a5161344978512e706e67)](https://camo.githubusercontent.com/e7a968a8fdff352368bf4a0c65c5862923bc1065628bbdeb96d0eeb2fbc2b2c8/68747470733a2f2f692e696d6775722e636f6d2f7a5161344978512e706e67)

If you want to export this, you can do this the shell way:

```
dizici episodes "Stargate List" > output.txt
```

and print `output.txt` etc.

Screenshot(s)
-------------

[](#screenshots)

This is a sample screenshot from console when you run the sync command:

[![imgur](https://camo.githubusercontent.com/c839ea4e0c9b1a13e78bc1a9cc3bb7e4e74a7906a8c3707e4664e6053e50e10c/68747470733a2f2f692e696d6775722e636f6d2f386e4e6a4853582e706e67)](https://camo.githubusercontent.com/c839ea4e0c9b1a13e78bc1a9cc3bb7e4e74a7906a8c3707e4664e6053e50e10c/68747470733a2f2f692e696d6775722e636f6d2f386e4e6a4853582e706e67)

Many of the other images are provided earlier of this readme.

TODOs
-----

[](#todos)

- Grouping feature to bundle multiple TV shows
- Storing all TVMaze IDs in database instead of config file
- [Tables](http://symfony.com/doc/current/components/console/helpers/table.html) in console output
- Provide output such as HTML, tsv etc. in addition to text
- New columns for marking such as "watched", "collected" etc.
- Please feel free to provide issues and pull requests. I'll gladly consider them.

Version History
---------------

[](#version-history)

### Version 1.1.0

[](#version-110)

- Watchlist groups: You can now create and name custom watch lists, and create lists like "Shows for Summer", "Marvel Universe" etc, add TV shows to these lists and and call the episodes lists by these names. This allows you both to call the command easier, and manage better. This resulted the deletion of `series` key in `config.yml`.
- New commands to create watchlist groups and add TV shows to these groups.

### Version 1.0.1

[](#version-101)

- NPM submission for easier installation

### Version 1.0.0

[](#version-100)

This release aims to make Dizici as portable as possible.

- SQLite is now the default connection
- Configuration file is now [YAML](http://www.yaml.org/). The `.yml` file is parsed using [Symfony Yaml Component](http://symfony.com/doc/current/components/yaml/introduction.html)
- Standalone .phar archive created, using [Box-project's Box2](http://box-project.github.io/box2/)
- Configuration path is now `$HOME/.dizici/` . This way, the app's aimed to be one single archive, and more portable

### Version 0.2.0

[](#version-020)

- Cli app renamed to `dizici` from `series`
- Cli table output implemented

### Version 0.1.0

[](#version-010)

- First release

License
-------

[](#license)

MIT License

###  Health Score

40

—

FairBetter than 88% of packages

Maintenance58

Moderate activity, may be stable

Popularity16

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 58.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~17 days

Total

3

Last Release

3747d ago

Major Versions

v0.2.0 → v1.0.12016-01-07

### Community

Maintainers

![](https://www.gravatar.com/avatar/6df7cedc256b13c544dfaf01f269f611b89278f27502f48ca3050b38a38ac45b?d=identicon)[Ardakilic](/maintainers/Ardakilic)

---

Top Contributors

[![Ardakilic](https://avatars.githubusercontent.com/u/2063957?v=4)](https://github.com/Ardakilic "Ardakilic (88 commits)")[![renovate-bot](https://avatars.githubusercontent.com/u/25180681?v=4)](https://github.com/renovate-bot "renovate-bot (60 commits)")[![renovate[bot]](https://avatars.githubusercontent.com/in/2740?v=4)](https://github.com/renovate[bot] "renovate[bot] (3 commits)")

---

Tags

seriestvmazeardakilicardakilicdagi

### Embed Badge

![Health badge](/badges/ardakilic-dizici/health.svg)

```
[![Health](https://phpackages.com/badges/ardakilic-dizici/health.svg)](https://phpackages.com/packages/ardakilic-dizici)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[drupal/core

Drupal is an open source content management platform powering millions of websites and applications.

19462.3M1.3k](/packages/drupal-core)[laravel/vapor-cli

The Laravel Vapor CLI

31310.7M8](/packages/laravel-vapor-cli)[flarum/core

Delightfully simple forum software.

211.3M1.9k](/packages/flarum-core)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

255.2k](/packages/aedart-athenaeum)[bitpay/sdk

Complete version of the PHP library for the new cryptographically secure BitPay API

42337.5k4](/packages/bitpay-sdk)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
