An example disk media scanner, compatible with file naming standards, described in the docs/.
Current version: 1.0.
This demo version scans given path for files, creates a collection and dumps all sorted data to mongo. And that's just it.
- A media file collection compatible with the standards (@see here).
- A mongoDB service running on default port (configurable in config.yml)
- git clone
- composer install
Example test run on virtual filesystem:
php bin/console moniq:scan --filesystem=vfs --definition=src/MoniqBundle/Resources/vfs/example.json /music
Output:
Starting multimedia scanner...
Browsing path /music...
Processing directory 1993 Haddaway - What Is Love (Remixes)
R: 1993 Haddaway - What Is Love (Remixes)
R: 1 - Haddaway - What Is Love (7'' Mix).wav
R: 2 - Haddaway - What Is Love (Eat This Mix).wav
R: 3 - Haddaway - What Is Love (Tour De Trance Mix).wav
Processing directory 1985 Paul Hardcastle - 19 (The Final Story) [601 814]
R: 1985 Paul Hardcastle - 19 (The Final Story) [601 814]
R: 01 - Paul Hardcastle - 19 (The Final Story).wav
R: 02 - Paul Hardcastle - 19 (Destruction Mix).wav
Example run against real media collection:
php bin/console moniq:scan /media/jack/1TB/music
For more information on this topic, refer to the docs or contact me directly at [email protected] .
You will need phpunit installed in your system. Run the supplied tests to learn about crucial modules and services.
Check out the spec folder to learn about the designed class responsibilities.
Implementation should be SOLID.
Each module and service can be easily decoupled thanks to 100% dependency control. It is very convenient to use the built-in VFS for debugging and testing purposes.
- Updating entry data in the storage. Currently there is no support for anything else than just adding to mongo.
- Support for samplers. Some code is already there but has not been tested.
- Support for the genre parameter. Stored collections should be tagged by it. Genre should be specified by the user on input.
- Rotate command to create random playlist rotations using given criteria.