{ "info": { "author": "David Gasaway", "author_email": "dave@gasaway.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: Multimedia :: Sound/Audio" ], "description": "\nIntroduction\n============\n\n``genpl`` is a Python 3 script for recursively generating playlists (M3U8, PLS,\netc.) for audio files.\n\nSome music devices (e.g., the author's OEM automotobile head unit) do not \nsupport a library of audio files, but only a simple single-folder or playlist\nplay modes, that harken back to the early days of software audio players.\nGiven a typical filesystem layout that places releases in independent folders\nbeneath an artist folder, the only way to play an entire artist is to build a\nplaylist containing all releases for the artist. ``genpl`` solves the problem\nby recursively building \"chained\" playlists containing audio files for the\ncontaining folder or below. That is, suppose the following folder structure::\n\n /Music/Popular/Releases/Rush/2112\n\nProvide the path ``/Music`` to ``genpl``, and it can create a playlist at evey\nlevel of the path. A playlist in folder '2112' will contain tracks from the\nalbum *2112*; a playlist in folder 'Rush' will contain all releases for the\nartist *Rush*; a playlist in folder 'Releases' will contain releases for all\npopular artists; a playlist in folder 'Popular' will contain music for all\npopular artists; finally, a playlist in folder 'Music' will contain all music.\n\nUsage\n=====\n\nBy default, ``genpl`` needs only a root path to generate chained m3u8 playlists\nfor all subfolders containing audio files with extensions 'ogg', 'flac', 'mp3',\n'aac', 'm4a', 'oga', 'mka', and 'shn'::\n\n genpl /Music\n\nOr on Windows::\n\n genpl F:\\Music\n\nOther generation modes are available to create a single playlist in the root\ncontaining all music below the root, ``--single-playlist``, or to create\nplaylists only in folders containing audio files and excluding files from\nsubfolders, ``--unchained-playlists``. Playlists are named the same as the\nparent folder, e.g., in the example above, folder '2112' would contain a\nplaylist named '2112.m3u8'. Use the ``--parent`` argument to create the\nplaylists one folder higher, instead; e.g., in the example above the folder\n'Rush' would contain a playlist for for each release, rather than a playlist\nin each subfolder. A fixed playlist filename can be provided to the\n``--filename`` argument; however, in ``--parent`` mode, the filename only\napplies to the playlist created in the root. Other playlist types than 'm3u8'\nare available through the ``--type`` argument.\n\nBy default, ``genpl`` will use the path conventions for the platform where it is\nrun (for example '/' path separators on Linux vs. '\\\\' path separators on\nWindows). In cases where the files may be moved from one platform, it may be\nuseful to force a certain convention with ``--posix`` or ``--windows``. Note,\nhowever, that the author's experience suggests that POSIX contentions work with\nmost platforms and software, including Windows; your milage may vary.\n\nBy default, ``genpl`` creates playlists using paths relative to the playlist\nlocation. For example, given the folder structure above, a playlist in the\n'Relases' folder would have entries::\n\n Rush/2112/01 - 2112.ogg\n Rush/2112/02 - A Passage to Bangkok.ogg\n\nIn almost all use cases, this is preferred as playlists stay correct if the root\nis moved, say, to another device or accessed remotely from another device.\nFor specialized cases, ``--absolute-paths`` provides an absolute path mode;\n``--base`` provides a quasi-absolute mode which substitues the root path with a\nprovided path (absolute root path on a destination device). For example, these\noptions on a Linux system::\n\n genpl --base \"M:\\Music\" --windows /Music\n\nCould create a playlist with these entries::\n\n M:\\Music\\Popular\\Releases\\Rush\\2112\\01 - 2112.ogg\n M:\\Music\\Popular\\Releases\\Rush\\2112\\02 - A Passage to Bangkok.ogg\n\nSince absolute paths are incompatible with cross-platform support, the path\nconvention options are not valid with ``--absolute-paths``.\n\nInstallation\n============\n\n.. warning::\n\n Some Linux distributions discourage installation of system-level python\n packages using ``pip`` or ``setup.py install``, due to collisions with the\n system package manager. In those cases, dependencies should be installed\n through the package manager, if possible, or choose a user folder\n installation method.\n\nInstalling with pip\n-------------------\n\nIf your system has ``pip`` installed, and you have access to install software in\nthe system packages, then *kantag* kan be installed as administrator from \n`PyPI `_::\n\n # pip install genpl\n\nIf you do not have access to install system packages, or do not wish to install\nin the system location, it can be installed in a user folder::\n\n $ pip install --user genpl\n\nInstalling from source\n----------------------\n\nEither download a release tarball from the\n`Downloads `_ page, and\nunpack::\n\n $ tar zxvf genpl-1.1.0.tar.gz\n\nOr get the latest source from the Mercurial repository::\n\n $ hg clone https://bitbucket.org/dgasaway/genpl\n\nIf you have access to install software in the system packages, then it can be\ninstalled as administrator::\n\n # python setup.py install\n\nIf you do not have access to install system packages, or do not wish to install\nin the system location, it can be installed in a user folder::\n\n $ python setup.py install --user\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://bitbucket.org/dgasaway/genpl/downloads/", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/dgasaway/genpl", "keywords": "audio music playlist", "license": "GNU GPL v2", "maintainer": "", "maintainer_email": "", "name": "genpl", "package_url": "https://pypi.org/project/genpl/", "platform": "", "project_url": "https://pypi.org/project/genpl/", "project_urls": { "Download": "https://bitbucket.org/dgasaway/genpl/downloads/", "Homepage": "https://bitbucket.org/dgasaway/genpl" }, "release_url": "https://pypi.org/project/genpl/1.1.0/", "requires_dist": null, "requires_python": ">=3", "summary": "A Python script for recursively creating audio playlists", "version": "1.1.0" }, "last_serial": 3690138, "releases": { "1.1.0": [ { "comment_text": "", "digests": { "md5": "781234e07bf8f33925c48dcae2bf8e5a", "sha256": "a23c1b83951ea1a188c48a8c187596aff298efb1ab7a94f1fa02d448461546ad" }, "downloads": -1, "filename": "genpl-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "781234e07bf8f33925c48dcae2bf8e5a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 10771, "upload_time": "2018-03-21T05:06:05", "url": "https://files.pythonhosted.org/packages/f0/14/923c12b47028c808e9eef1378018add9fa0f39b851f6326e574cb1002ced/genpl-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7651f1340d3486fa490015e0e70360e5", "sha256": "479f5094b02697dd47607b37b38b0fe743dd7761c45a37ded83ef3ad64f3ddf3" }, "downloads": -1, "filename": "genpl-1.1.0.tar.gz", "has_sig": false, "md5_digest": "7651f1340d3486fa490015e0e70360e5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 16657, "upload_time": "2018-03-21T05:06:09", "url": "https://files.pythonhosted.org/packages/11/94/3d80b85aba16ecfe6247c537b697c09c7bf2f6fdabb26e3994179a43b323/genpl-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "781234e07bf8f33925c48dcae2bf8e5a", "sha256": "a23c1b83951ea1a188c48a8c187596aff298efb1ab7a94f1fa02d448461546ad" }, "downloads": -1, "filename": "genpl-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "781234e07bf8f33925c48dcae2bf8e5a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 10771, "upload_time": "2018-03-21T05:06:05", "url": "https://files.pythonhosted.org/packages/f0/14/923c12b47028c808e9eef1378018add9fa0f39b851f6326e574cb1002ced/genpl-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7651f1340d3486fa490015e0e70360e5", "sha256": "479f5094b02697dd47607b37b38b0fe743dd7761c45a37ded83ef3ad64f3ddf3" }, "downloads": -1, "filename": "genpl-1.1.0.tar.gz", "has_sig": false, "md5_digest": "7651f1340d3486fa490015e0e70360e5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 16657, "upload_time": "2018-03-21T05:06:09", "url": "https://files.pythonhosted.org/packages/11/94/3d80b85aba16ecfe6247c537b697c09c7bf2f6fdabb26e3994179a43b323/genpl-1.1.0.tar.gz" } ] }