{ "info": { "author": "Kinuax", "author_email": "kinuax@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Other Audience", "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", "Natural Language :: English", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Multimedia", "Topic :: Multimedia :: Sound/Audio", "Topic :: Multimedia :: Sound/Audio :: Players", "Topic :: Multimedia :: Sound/Audio :: Players :: MP3" ], "description": "rolabesti\n=========\n\n.. image:: https://img.shields.io/pypi/v/rolabesti.svg\n :target: https://pypi.python.org/pypi/rolabesti\n\n.. image:: https://img.shields.io/pypi/pyversions/rolabesti.svg\n :target: https://pypi.python.org/pypi/rolabesti\n\n.. image:: https://img.shields.io/pypi/wheel/rolabesti.svg\n :target: https://pypi.python.org/pypi/rolabesti\n\n.. image:: https://travis-ci.org/kinuax/rolabesti.svg?branch=master\n :target: https://travis-ci.org/kinuax/rolabesti\n\n.. image:: https://img.shields.io/pypi/l/rolabesti.svg\n :target: https://pypi.python.org/pypi/rolabesti\n\n- `Motivation <#motivation>`__\n- `Description <#description>`__\n- `Requirements <#requirements>`__\n- `Installation <#installation>`__\n- `Configuration <#configuration>`__\n- `Usage <#usage>`__\n\nMotivation\n----------\n\nThe main motivation is to answer a question that music fans, DJs, bartenders and melomaniacs with tons of audio files may face: 'What music do I play?' That is, 'what genre do I want now?' or 'which random songs can fill up the time I am able to listen?' are the type of questions that **rolabesti** replies.\n\nDescription\n-----------\n\n**rolabesti** is a command-line application to manage a music library, performing the following actions on mp3 files: loading to database, parsing, searching, playing, enqueueing, copying, and tagging.\n\nRequirements\n------------\n\n- Linux environment.\n- Python 3.3+. A `virtual environment `__ is recommended.\n- MongoDB instance.\n- vlc player. When selecting ``shell`` player, only the ``libvlc`` library is required.\n\nInstallation\n------------\n\n.. code-block:: bash\n\n $ pip install rolabesti\n\nConfiguration\n-------------\n\nThe default settings can be overriden in ``~/.config/rolabesti/rolabesti.conf``. This configuration file has INI syntax with a unique section named ``[rolabesti]``.\n\n- ``MUSIC_DIR``: path where the mp3 files are located, default is ``~/Music``.\n- ``MAX_TRACK_LENGTH``: maximum track length in minutes, corresponding to the ``MAX`` argument, default is ``10``.\n- ``MIN_TRACK_LENGTH``: minimum track length in minutes, corresponding to the ``MIN`` argument, default is ``0``.\n- ``MAX_TRACKLIST_LENGTH``: maximum tracklist length in minutes, corresponding to the ``MAX_TRACKLIST_LENGTH`` argument; ``0`` denotes no tracklist length limit, default is ``60``.\n- ``SORTING``: tracklist sorting, corresponding to the ``SORTING`` argument; choices are ``asc`` (ascending), ``desc`` (descending) and ``random``, default is ``random``.\n- ``PLAYER``: player to play and enqueue tracks, corresponding to the ``PLAYER`` argument; choices are ``shell`` (play tracks directly in the shell) and ``vlc`` (play tracks in the vlc player, opening it if necessary), default is ``vlc``.\n- ``OVERLAP_LENGTH``: when selecting ``shell`` player, overlap length in seconds between two consecutive tracks, corresponding to the ``OVERLAP_LENGTH`` argument; minimum is ``0``, maximum is ``30``, default is ``3``.\n- ``MONGO_HOST``: MongoDB host, default is ``localhost``.\n- ``MONGO_PORT``: MongoDB port, default is ``27017``.\n- ``MONGO_DBNAME``: MongoDB database name, default is ``rolabesti``.\n- ``MONGO_COLNAME``: MongoDB collection name, default is ``tracks``.\n\nBefore running the application, locating the mp3 files in ``MUSIC_DIR`` is enough. Besides, the searching results become more accurate when the track path has one of following patterns.\n\n- ``MUSIC_DIR/Places//Genres//Albums//[/].mp3``\n- ``MUSIC_DIR/Places/<place>/Genres/<genre>/<artist>/<album>/[<side>/]<title>.mp3``\n- ``MUSIC_DIR/Places/<place>/Genres/<genre>/<artist>/<title>.mp3``\n- ``MUSIC_DIR/Places/<place>/Genres/<genre>/`<title>.mp3``\n- ``MUSIC_DIR/Places/<place>/Albums/<album>/[<side>/]<title>.mp3``\n- ``MUSIC_DIR/Places/<place>/<artist>/<album>/[<side>/]<title>.mp3``\n- ``MUSIC_DIR/Places/<place>/<artist>/<title>.mp3``\n- ``MUSIC_DIR/Places/<place>/<title>.mp3``\n- ``MUSIC_DIR/Genres/<genre>/Albums/<album>/[<side>/]<title>.mp3``\n- ``MUSIC_DIR/Genres/<genre>/<artist>/<album>/[<side>/]<title>.mp3``\n- ``MUSIC_DIR/Genres/<genre>/<artist>/<title>.mp3``\n- ``MUSIC_DIR/Genres/<genre>/<title>.mp3``\n- ``MUSIC_DIR/Artists/<artist>/<album>/[<side>/]<title>.mp3``\n- ``MUSIC_DIR/Artists/<artist>/<title>.mp3``\n- ``MUSIC_DIR/Albums/<album>/[<side>/]<title>.mp3``\n- ``MUSIC_DIR/[some/path/]<title>.mp3``\n\n``<place>``, ``<genre>``, ``<artist>``, ``<album>``, ``<side>`` and ``<title>`` are placeholders of any length and character. The square brackets denote optional.\n\nThe database is loaded with tracks metadata running the ``load`` subcommand.\n\n.. code-block:: bash\n\n $ rolabesti load\n\nWhen selecting ``vlc`` player, unique running instance configuration is recommended.\n\n- Tools/Preferences/Interface/Playlist and Instances\n - Allow only one instance: ``checked``\n - Enqueue items into playlist in one instance mode: ``checked``\n\nUsage\n-----\n\n.. code-block:: bash\n\n $ rolabesti [-h] SUBCOMMAND [ARGUMENTS]\n\nYou can check the arguments for each subcommand with:\n\n.. code-block:: bash\n\n $ rolabesti SUBCOMMAND -h\n\nLet's see a couple of examples.\n\nTo play two hours of rock music, limiting the track length to 10 minutes, with random sorting:\n\n.. code-block:: bash\n\n $ rolabesti play -g rock -l 120 --max 10 -s random\n\nTo play an hour of rap music from Iceland, skipping intro and outro tracks (less than 2 minutes length), with ascending sorting:\n\n.. code-block:: bash\n\n $ rolabesti play -g rap -l 60 -p Iceland --min 2 -s asc\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/kinuax/rolabesti/", "keywords": "mp3 mutagen vlc", "license": "GPLv2", "maintainer": "", "maintainer_email": "", "name": "rolabesti", "package_url": "https://pypi.org/project/rolabesti/", "platform": "", "project_url": "https://pypi.org/project/rolabesti/", "project_urls": { "Homepage": "https://github.com/kinuax/rolabesti/" }, "release_url": "https://pypi.org/project/rolabesti/0.4.0/", "requires_dist": [ "mutagen (==1.31)", "pymongo (==3.2.1)", "python-vlc (==1.1.2)" ], "requires_python": "", "summary": "Command-line application to manage a music collection of mp3 tracks", "version": "0.4.0" }, "last_serial": 3554648, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "33d04eadadb5ce4df045cecc6c226a65", "sha256": "ca6fe8691a6b590bb89438b80a4b956a77c7ceb5bf670c4dff132ddc49432581" }, "downloads": -1, "filename": "rolabesti-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "33d04eadadb5ce4df045cecc6c226a65", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15010, "upload_time": "2017-02-02T07:27:08", "url": "https://files.pythonhosted.org/packages/0d/9b/8234d7d7c3822e9ebf5c76648f485fa716f8f1f951003dc7eb67cbc9a61b/rolabesti-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1e3c04719f13bd397b8f84ec0bf1ad1a", "sha256": "7777fe06dcb329f215b73603ca0391d45e5def09d6917275db236d6413a02700" }, "downloads": -1, "filename": "rolabesti-0.1.0.tar.gz", "has_sig": false, "md5_digest": "1e3c04719f13bd397b8f84ec0bf1ad1a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9548, "upload_time": "2017-02-02T07:27:10", "url": "https://files.pythonhosted.org/packages/10/91/1ba53ec893feb86a17ddc2fc7dc6d704b652eed69e2a5b635a12e6444430/rolabesti-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "479dfcbac04f810d52384335baaab6be", "sha256": "a402f76264c5157fbcbfdb72e3afaf26927404d8ceae27fdcf27e2295c3ce4d0" }, "downloads": -1, "filename": "rolabesti-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "479dfcbac04f810d52384335baaab6be", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14969, "upload_time": "2017-02-02T16:13:42", "url": "https://files.pythonhosted.org/packages/c1/5d/ddb2b45d7e84b6b21dbc62b5e0cc3015e8edb090756536151c450356cb8d/rolabesti-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0b2740356d0d1845edf417561e4d5fcf", "sha256": "1aecc0ffb53ca324dca11c5afe0fad8b11716c2baf10d329ca701a12d366add5" }, "downloads": -1, "filename": "rolabesti-0.1.1.tar.gz", "has_sig": false, "md5_digest": "0b2740356d0d1845edf417561e4d5fcf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9515, "upload_time": "2017-02-02T16:13:44", "url": "https://files.pythonhosted.org/packages/4d/21/cb293c5af850092b7027d209e761cb4a32961f00c4be8d53e737ae1c38b8/rolabesti-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "6c8584a824b467a1eeb38eac3a23441d", "sha256": "753c3570691adec4e3cf3a358df99c8da68d6c2caab3484f62bd1fae923b9b74" }, "downloads": -1, "filename": "rolabesti-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "6c8584a824b467a1eeb38eac3a23441d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18687, "upload_time": "2017-02-03T18:26:58", "url": "https://files.pythonhosted.org/packages/0b/dc/99d9d2d675e85443034e0a4d2690ca935ffa8e59e28b8c3704fa1d77c6b1/rolabesti-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f47f942e03988732cc909b91f26d070b", "sha256": "39972b8ff9c94dcca27aba64c6973e94a9a6959d91ba47350e74fb9375d30445" }, "downloads": -1, "filename": "rolabesti-0.1.2.tar.gz", "has_sig": false, "md5_digest": "f47f942e03988732cc909b91f26d070b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9926, "upload_time": "2017-02-03T18:27:00", "url": "https://files.pythonhosted.org/packages/06/7d/2848e4944c90c55cc5e42f4865f4a8d58c517b5f3beb7a2a062d3e5e7a36/rolabesti-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "e0732981425239a6f9b37f4e599404c0", "sha256": "b24db6202f8eddf5ecc7305ee7070104b44a55701b84983e3de776c6f260aa4a" }, "downloads": -1, "filename": "rolabesti-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e0732981425239a6f9b37f4e599404c0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21089, "upload_time": "2017-02-07T03:38:55", "url": "https://files.pythonhosted.org/packages/9d/15/7d82863977811f29a4770968da1c7c0183cf0ebca809267bf060ccca9352/rolabesti-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "56bf0dc4ad8f3c02333b9955aaaff346", "sha256": "5170b8982169edee63d2fbe50a945f1f4dc6bce7740caccb5419cd29fc3a8089" }, "downloads": -1, "filename": "rolabesti-0.2.0.tar.gz", "has_sig": false, "md5_digest": "56bf0dc4ad8f3c02333b9955aaaff346", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12314, "upload_time": "2017-02-07T03:38:58", "url": "https://files.pythonhosted.org/packages/f8/8c/e42af92a0cd28b8e1dbbd3141ce4a38abe84eab5fb5af7246914185e07d7/rolabesti-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "3b4952450d82ad7062496c56fd94394f", "sha256": "99561af0f07da7cd5df92cddf0fbd7b49e2a6812405d1d7beed9e3797a42d4c2" }, "downloads": -1, "filename": "rolabesti-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3b4952450d82ad7062496c56fd94394f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17074, "upload_time": "2017-02-20T17:09:40", "url": "https://files.pythonhosted.org/packages/73/a1/c5660c30898c24ee27b9960f916d041752fd502a26e69df74043f6c8e6f1/rolabesti-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "490a4e1809f9b1f50a471fe3a7adb9c6", "sha256": "d0c5702e452a80e0c17e18f366bde2177975b5aaea3910e3024a6c597a83596f" }, "downloads": -1, "filename": "rolabesti-0.2.1.tar.gz", "has_sig": false, "md5_digest": "490a4e1809f9b1f50a471fe3a7adb9c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11410, "upload_time": "2017-02-20T17:09:42", "url": "https://files.pythonhosted.org/packages/b8/f4/86c6c0c2d2d639d1db0496f3cdc50ed47da8332818367ec85bed47bc10c9/rolabesti-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "dd9ac409f40fb6282b7a0890f8c9cb93", "sha256": "6ac92819112b65a44451978ceba7a6a7db9aecacfb6bfe02f2ba2f0b9e962485" }, "downloads": -1, "filename": "rolabesti-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "dd9ac409f40fb6282b7a0890f8c9cb93", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18001, "upload_time": "2017-02-20T17:16:42", "url": "https://files.pythonhosted.org/packages/fa/55/0e7f0d3b0889e8a065001caf0560a662769422c9dab5f9646f109453228c/rolabesti-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "33329cd66ba0e097dede3ff4a8706d4e", "sha256": "afa25cbaba1ffb98840e924e3f1d34c3d68131d0c804103e78e9f8be00a43b00" }, "downloads": -1, "filename": "rolabesti-0.2.2.tar.gz", "has_sig": false, "md5_digest": "33329cd66ba0e097dede3ff4a8706d4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11909, "upload_time": "2017-02-20T17:16:44", "url": "https://files.pythonhosted.org/packages/b7/f5/91dad6b62acf02ba88acbfd257da158183028cebe615d6cc16b98028b47e/rolabesti-0.2.2.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "4592641b66162af20e23f95e32b34eb6", "sha256": "571affabfb238e3dd7330e6bcc1c5a4a24ca727653d1bbe53071f201f8bf7bcf" }, "downloads": -1, "filename": "rolabesti-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "4592641b66162af20e23f95e32b34eb6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18685, "upload_time": "2017-02-26T02:32:49", "url": "https://files.pythonhosted.org/packages/aa/b2/81abfecb290ef79d1fd71b4675cfb7c42fbd8aaf4dc1936472953b82bf0c/rolabesti-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9a80aba1eb321586100e09179e2f6fe1", "sha256": "d943a30d9eca9a8617e0783ea7b1ac1ad3a3b0bac03a5e2c09ee78b3255cf8f9" }, "downloads": -1, "filename": "rolabesti-0.3.0.tar.gz", "has_sig": false, "md5_digest": "9a80aba1eb321586100e09179e2f6fe1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12186, "upload_time": "2017-02-26T02:32:51", "url": "https://files.pythonhosted.org/packages/99/86/8c7f928cb2dd452adb7f2efc261d890282859832d6103d9a41a3298af452/rolabesti-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "6fdfb83e4b9d2f8fc3014f45f973f26f", "sha256": "e8527780a83d781a0e9d20b1f0375fb503f1eef28407ae5b7b6e0cdae4cfc1c0" }, "downloads": -1, "filename": "rolabesti-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6fdfb83e4b9d2f8fc3014f45f973f26f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18682, "upload_time": "2017-03-15T05:12:59", "url": "https://files.pythonhosted.org/packages/4d/0f/85cb5cc401b400f837fc7d520405a12926b9d0d60b1e628b6f826290f8ab/rolabesti-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4f2c85261fefcc888a927bc65e4d429d", "sha256": "8d3e18472b669e187d011c08a952d0c05e53cd7398bf672d0396ca12c95be511" }, "downloads": -1, "filename": "rolabesti-0.3.1.tar.gz", "has_sig": false, "md5_digest": "4f2c85261fefcc888a927bc65e4d429d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12181, "upload_time": "2017-03-15T05:13:02", "url": "https://files.pythonhosted.org/packages/47/cf/035823aee449f2a318243c8d5646cf1bb6820da6cdc07178858487e5f277/rolabesti-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "5bb534e2e0ffdf753b4c30b2280892da", "sha256": "f7e0bb0732daa78a627fcba2c7ac45914ade494131960d05c766181741286352" }, "downloads": -1, "filename": "rolabesti-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "5bb534e2e0ffdf753b4c30b2280892da", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18727, "upload_time": "2018-01-12T14:56:06", "url": "https://files.pythonhosted.org/packages/b8/c3/7760b47f1abd813c0591d9df15486bd672c641307ff60d79a72775249f14/rolabesti-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9017b5f1ce478c399594c15239a57a6f", "sha256": "108bfd345c11a57cf5490b51780cf04722c5660823d6d9e8c933b95f4b7aa4eb" }, "downloads": -1, "filename": "rolabesti-0.3.2.tar.gz", "has_sig": false, "md5_digest": "9017b5f1ce478c399594c15239a57a6f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10928, "upload_time": "2018-01-12T14:56:07", "url": "https://files.pythonhosted.org/packages/0b/89/9126245071b3209a4dfa4ee9b225f631e0d23c43fcf4741940e3c5ec8a18/rolabesti-0.3.2.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "7979b77eac8662bec6bd86735bb6f758", "sha256": "4e99d4fefef0fc488d04e59446b6123e9c242d1b5048e1053465ec147b21bf37" }, "downloads": -1, "filename": "rolabesti-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "7979b77eac8662bec6bd86735bb6f758", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18909, "upload_time": "2018-02-05T20:52:31", "url": "https://files.pythonhosted.org/packages/97/19/45be373d7a66b42f2795e600573579b2c30e0bda679c39c3c91d66d6bf0b/rolabesti-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2795bce9aece841f69de88706bc5162d", "sha256": "58709b0be0ac583a72a66c3e056a63b6b9c3c738fb62ed253b4a68e749fb28f3" }, "downloads": -1, "filename": "rolabesti-0.4.0.tar.gz", "has_sig": false, "md5_digest": "2795bce9aece841f69de88706bc5162d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11189, "upload_time": "2018-02-05T20:52:32", "url": "https://files.pythonhosted.org/packages/d9/9a/a89dd147565a9caa7d05ff391f00ba1d37ed51fdfe83a969ddbc66978151/rolabesti-0.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7979b77eac8662bec6bd86735bb6f758", "sha256": "4e99d4fefef0fc488d04e59446b6123e9c242d1b5048e1053465ec147b21bf37" }, "downloads": -1, "filename": "rolabesti-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "7979b77eac8662bec6bd86735bb6f758", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18909, "upload_time": "2018-02-05T20:52:31", "url": "https://files.pythonhosted.org/packages/97/19/45be373d7a66b42f2795e600573579b2c30e0bda679c39c3c91d66d6bf0b/rolabesti-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2795bce9aece841f69de88706bc5162d", "sha256": "58709b0be0ac583a72a66c3e056a63b6b9c3c738fb62ed253b4a68e749fb28f3" }, "downloads": -1, "filename": "rolabesti-0.4.0.tar.gz", "has_sig": false, "md5_digest": "2795bce9aece841f69de88706bc5162d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11189, "upload_time": "2018-02-05T20:52:32", "url": "https://files.pythonhosted.org/packages/d9/9a/a89dd147565a9caa7d05ff391f00ba1d37ed51fdfe83a969ddbc66978151/rolabesti-0.4.0.tar.gz" } ] }