{ "info": { "author": "Josef Friedrich", "author_email": "josef@friedrich.rocks", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha" ], "description": ".. image:: http://img.shields.io/pypi/v/audiorename.svg\n :target: https://pypi.python.org/pypi/audiorename\n :alt: This package on the Python Package Index\n\n.. image:: https://travis-ci.org/Josef-Friedrich/audiorename.svg?branch=packaging\n :target: https://travis-ci.org/Josef-Friedrich/audiorename\n :alt: Continuous integration\n\n.. image:: https://readthedocs.org/projects/audiorename/badge/?version=latest\n :target: https://audiorename.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n***********\naudiorename\n***********\n\nRename audio files from metadata tags.\n\nInstallation\n============\n\nFrom Github\n-----------\n\n.. code:: Shell\n\n git clone git@github.com:Josef-Friedrich/audiorename.git\n cd audiorename\n python setup.py install\n\nFrom PyPI\n---------\n\n.. code:: Shell\n\n pip install audiorename\n easy_install audiorename\n\nUsage\n=====\n\n.. code-block:: text\n\n usage: audiorenamer [-h] [-d] [-s FIELD_SKIP] [-v] [-E] [-r]\n [-p BACKUP_FOLDER] [-B] [-C | -M | -n] [-A] [-D] [-F]\n [-m ALBUM_MIN] [-e EXTENSION] [-k] [-S] [-c FORMAT_STRING]\n [-f FORMAT_STRING] [--soundtrack FORMAT_STRING] [-K] [-b]\n [-j] [-l] [-o] [-T] [-V] [-a] [-t TARGET]\n source\n \n Rename audio files from metadata tags.\n \n How to specify the target directory?\n \n 1. By the default the audio files are moved or renamed to the parent\n working directory.\n 2. Use the option ``-t `` or ``--target `` to specifiy\n a target directory.\n 3. Use the option ``-a`` or ``--source-as-target`` to copy or rename\n your audio files within the source directory.\n \n Metadata fields\n ===============\n \n $acoustid_fingerprint: Acoustic ID fingerprint\n \n $acoustid_id: Acoustic ID\n \n $album: album\n \n $albumartist: The artist for the entire album, which may be\n different from the artists for the individual\n tracks\n \n $albumartist_credit: albumartist_credit\n \n $albumartist_sort: albumartist_sort\n \n $albumdisambig: albumdisambig\n \n $albumstatus: The status describes how \"official\" a release\n is. Possible values are: official,\n promotional, bootleg, pseudo-release\n \n $albumtype: The MusicBrainz album type; the MusicBrainz\n wiki has a list of type names\n \n $ar_classical_album: ar_classical_album\n \n $ar_classical_performer: ar_classical_performer\n \n $ar_classical_title: ar_classical_title\n \n $ar_classical_track: ar_classical_track\n \n $ar_combined_album: \u201calbum\u201d without \u201d (Disc X)\u201d.\n \n $ar_combined_artist: The first available value of this metatag\n order: \u201calbumartist\u201d -> \u201cartist\u201d ->\n \u201calbumartist_credit\u201d -> \u201cartist_credit\u201d\n \n $ar_combined_artist_sort: The first available value of this metatag\n order: \u201calbumartist_sort\u201d -> \u201cartist_sort\u201d ->\n \u201car_combined_artist\u201d\n \n $ar_combined_composer: ar_combined_composer\n \n $ar_combined_disctrack: Combination of disc and track in the format:\n disk-track, e.g. 1-01, 3-099\n \n $ar_combined_soundtrack: Boolean flag which indicates if the audio\n file is a soundtrack\n \n $ar_combined_work_top: The work on the top level of a work\n hierarchy.\n \n $ar_combined_year: First \u201coriginal_year\u201d then \u201cyear\u201d.\n \n $ar_initial_album: First character in lowercase of\n \u201car_combined_album\u201d.\n \n $ar_initial_artist: First character in lowercase of\n \u201car_combined_artist_sort\u201d\n \n $ar_initial_composer: ar_initial_composer\n \n $arranger: arranger\n \n $art: art\n \n $artist: artist\n \n $artist_credit: The track-specific artist credit name, which\n may be a variation of the artist\u2019s\n \u201ccanonical\u201d name\n \n $artist_sort: The \u201csort name\u201d of the track artist (e.g.,\n \u201cBeatles, The\u201d or \u201cWhite, Jack\u201d)\n \n $asin: Amazon Standard Identification Number\n \n $bitdepth: only available for some formats\n \n $bitrate: in kilobits per second, with units: e.g.,\n \u201c192kbps\u201d\n \n $bpm: bpm\n \n $catalognum: This is a number assigned to the release by\n the label which can often be found on the\n spine or near the barcode. There may be more\n than one, especially when multiple labels are\n involved. This is not the ASIN \u2014 there is a\n relationship for that \u2014 nor the label code.\n \n $channels: channels\n \n $comments: comments\n \n $comp: Compilation flag\n \n $composer: composer\n \n $composer_sort: Composer name for sorting.\n \n $country: The country the release was issued in.\n \n $date: date\n \n $day: The release day of the specific release\n \n $disc: disc\n \n $disctitle: disctitle\n \n $disctotal: disctotal\n \n $encoder: encoder\n \n $format: e.g., \u201cMP3\u201d or \u201cFLAC\u201d\n \n $genre: genre\n \n $genres: genres\n \n $grouping: grouping\n \n $images: images\n \n $initial_key: initial_key\n \n $label: The label which issued the release. There may\n be more than one.\n \n $language: The language a release\u2019s track list is\n written in. The possible values are taken\n from the ISO 639-3 standard.\n \n $length: in seconds\n \n $lyricist: lyricist\n \n $lyrics: lyrics\n \n $mb_albumartistid: MusicBrainz album artist ID\n \n $mb_albumid: MusicBrainz album ID\n \n $mb_artistid: MusicBrainz artist ID\n \n $mb_releasegroupid: MusicBrainz releasegroup ID\n \n $mb_releasetrackid: MusicBrainz release track ID\n \n $mb_trackid: MusicBrainz track ID\n \n $mb_workhierarchy_ids: All IDs in the work hierarchy. This field\n corresponds to the field `work_hierarchy`.\n The top level work ID appears first. As\n separator a slash (/) is used.Example:\n e208c5f5-5d37-3dfc-ac0b-999f207c9e46 /\n 5adc213f-700a-4435-9e95-831ed720f348 /\n eafec51f-47c5-3c66-8c36-a524246c85f8\n \n $mb_workid: MusicBrainz work ID\n \n $media: media\n \n $month: The release month of the specific release\n \n $original_date: original_date\n \n $original_day: The release day of the original version of\n the album\n \n $original_month: The release month of the original version of\n the album\n \n $original_year: The release year of the original version of\n the album\n \n $r128_album_gain: An optional gain for album normalization\n \n $r128_track_gain: An optional gain for track normalization\n \n $releasegroup_types: This field collects all items in the\n MusicBrainz\u2019 API related to type: `type`,\n `primary-type and `secondary-type-list`. Main\n usage of this field is to determine in a\n secure manner if the release is a soundtrack.\n \n $rg_album_gain: rg_album_gain\n \n $rg_album_peak: rg_album_peak\n \n $rg_track_gain: rg_track_gain\n \n $rg_track_peak: rg_track_peak\n \n $samplerate: in kilohertz, with units: e.g., \u201c48kHz\u201d\n \n $script: The script used to write the release\u2019s track\n list. The possible values are taken from the\n ISO 15924 standard.\n \n $title: The title of a audio file.\n \n $track: track\n \n $tracktotal: tracktotal\n \n $work: The Musicbrainzs\u2019 work entity.\n \n $work_hierarchy: The hierarchy of works: The top level work\n appears first. As separator is this string\n used: -->. Example: Die Zauberfl\u00f6te, K. 620\n --> Die Zauberfl\u00f6te, K. 620: Akt I --> Die\n Zauberfl\u00f6te, K. 620: Act I, Scene II. No. 2\n Aria \"Was h\u00f6r ...\n \n $year: The release year of the specific release\n \n Functions\n =========\n \n alpha\n -----\n \n %alpha{text}\n This function first ASCIIfies the given text, then all non alphabet\n characters are replaced with whitespaces.\n \n alphanum\n --------\n \n %alphanum{text}\n This function first ASCIIfies the given text, then all non alpanumeric\n characters are replaced with whitespaces.\n \n asciify\n -------\n \n %asciify{text}\n Translate non-ASCII characters to their ASCII equivalents. For\n example, \u201ccaf\u00e9\u201d becomes \u201ccafe\u201d. Uses the mapping provided by the\n unidecode module.\n \n delchars\n --------\n \n %delchars{text,chars}\n Delete every single character of \u201cchars\u201c in \u201ctext\u201d.\n \n deldupchars\n -----------\n \n %deldupchars{text,chars}\n Search for duplicate characters and replace with only one occurrance\n of this characters.\n \n first\n -----\n \n %first{text} or %first{text,count,skip} or\n %first{text,count,skip,sep,join}\n Returns the first item, separated by ; . You can use\n %first{text,count,skip}, where count is the number of items (default\n 1) and skip is number to skip (default 0). You can also use\n %first{text,count,skip,sep,join} where sep is the separator, like ; or\n / and join is the text to concatenate the items.\n \n if\n --\n \n %if{condition,truetext} or %if{condition,truetext,falsetext}\n If condition is nonempty (or nonzero, if it\u2019s a number), then returns\n the second argument. Otherwise, returns the third argument if\n specified (or nothing if falsetext is left off).\n \n ifdef\n -----\n \n %ifdef{field}, %ifdef{field,text} or %ifdef{field,text,falsetext}\n If field exists, then return truetext or field (default). Otherwise,\n returns falsetext. The field should be entered without $.\n \n ifdefempty\n ----------\n \n %ifdefempty{field,text} or %ifdefempty{field,text,falsetext}\n If field exists and is empty, then return truetext. Otherwise, returns\n falsetext. The field should be entered without $.\n \n ifdefnotempty\n -------------\n \n %ifdefnotempty{field,text} or %ifdefnotempty{field,text,falsetext}\n If field is not empty, then return truetext. Otherwise, returns\n falsetext. The field should be entered without $.\n \n initial\n -------\n \n %initial{text}\n Get the first character of a text in lowercase. The text is converted\n to ASCII. All non word characters are erased.\n \n left\n ----\n \n %left{text,n}\n Return the first \u201cn\u201d characters of \u201ctext\u201d.\n \n lower\n -----\n \n %lower{text}\n Convert \u201ctext\u201d to lowercase.\n \n nowhitespace\n ------------\n \n %nowhitespace{text,replace}\n Replace all whitespace characters with replace. By default: a dash (-)\n %nowhitespace{$track,_}\n \n num\n ---\n \n %num{number,count}\n Pad decimal number with leading zeros.\n %num{$track,3}\n \n replchars\n ---------\n \n %replchars{text,chars,replace}\n Replace the characters \u201cchars\u201d in \u201ctext\u201d with \u201creplace\u201d.\n %replchars{text,ex,-} > t--t\n \n right\n -----\n \n %right{text,n}\n Return the last \u201cn\u201d characters of \u201ctext\u201d.\n \n sanitize\n --------\n \n %sanitize{text}\n Delete in most file systems not allowed characters.\n \n shorten\n -------\n \n %shorten{text} or %shorten{text,max_size}\n Shorten \u201ctext\u201d on word boundarys.\n %shorten{$title,32}\n \n time\n ----\n \n %time{date_time,format,curformat}\n Return the date and time in any format accepted by strftime. For\n example, to get the year some music was added to your library, use\n %time{$added,%Y}.\n \n title\n -----\n \n %title{text}\n Convert \u201ctext\u201d to Title Case.\n \n upper\n -----\n \n %upper{text}\n Convert \u201ctext\u201d to UPPERCASE.\n \n positional arguments:\n source A folder containing audio files or a audio file\n \n optional arguments:\n -h, --help show this help message and exit\n -d, --dry-run Don\u2019t rename or copy the audio files.\n -s FIELD_SKIP, --field-skip FIELD_SKIP\n Skip renaming if field is empty.\n -v, --version show program's version number and exit\n \n metadata actions:\n -E, --enrich-metadata\n Fetch the tag fields \u201cwork\u201d and \u201cmb_workid\u201d from\n Musicbrainz and save this fields into the audio file.\n The audio file must have the tag field \u201cmb_trackid\u201d.\n The give audio file is not renamed.\n -r, --remap-classical\n \n rename:\n -p BACKUP_FOLDER, --backup-folder BACKUP_FOLDER\n Folder to store the backup files in.\n -B, --best-format Use the best format. This option only takes effect if\n the target file already exists. `audiorename` now\n checks the qualtity of the two audio files (source and\n target). The tool first examines the format. For\n example a flac file wins over a mp3 file.\n `audiorename` then checks the bitrate.\n -D, --delete Delete files.\n \n rename move actions:\n -C, --copy Copy files instead of rename / move.\n -M, --move Move / rename a file. This is the default action. The\n option can be omitted.\n -n, --no-rename Don\u2019t rename, move, copy dry run. Do nothing.\n \n rename cleanup actions:\n -A, --backup Backup audio files instead of delete files\n \n filters:\n -F, --album-complete Rename only complete albums\n -m ALBUM_MIN, --album-min ALBUM_MIN\n Rename only albums containing at least X files.\n -e EXTENSION, --extension EXTENSION\n Extensions to rename\n \n formats:\n -k, --classical Use the default format for classical music. If you use\n this option, both parameters (--format and\n --compilation) have no effect. Classical music is\n sorted by the lastname of the composer.\n -S, --shell-friendly Rename audio files \u201cshell friendly\u201d, this means\n without whitespaces, parentheses etc.\n \n format strings:\n -c FORMAT_STRING, --compilation FORMAT_STRING\n Format string for compilations. Use metadata fields\n and functions to build the format string.\n -f FORMAT_STRING, --format FORMAT_STRING\n The default format string for audio files that are not\n compilations or compilations. Use metadata fields and\n functions to build the format string.\n --soundtrack FORMAT_STRING\n Format string for a soundtrack audio file. Use\n metadata fields and functions to build the format\n string.\n \n output:\n -K, --color Colorize the standard output of the program with ANSI\n colors.\n -b, --debug Print debug informations about the single metadata\n fields.\n -j, --job-info Display informations about the current job. This\n informations are printted out before any actions on\n the audio files are executed.\n -l, --mb-track-listing\n Print track listing for Musicbrainz website: Format:\n track. title (duration), e. g.: 1. He, Zigeuner (1:31)\n 2. Hochget\u00fcrmte Rimaflut (1:21)\n -o, --one-line Display the rename / copy action status on one line\n instead of two.\n -T, --stats Show statistics at the end of the execution.\n -V, --verbose Make the command line output more verbose.\n \n target:\n -a, --source-as-target\n Use specified source folder as target directory\n -t TARGET, --target TARGET\n Target directory\n\nDevelopment\n===========\n\nTest\n----\n\n::\n\n tox\n\n\nPublish a new version\n---------------------\n\n::\n\n git tag 1.1.1\n git push --tags\n python setup.py sdist upload\n\n\nPackage documentation\n---------------------\n\nThe package documentation is hosted on\n`readthedocs `_.\n\nGenerate the package documentation:\n\n::\n\n python setup.py build_sphinx", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Josef-Friedrich/audiorename", "keywords": "audio", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "audiorename", "package_url": "https://pypi.org/project/audiorename/", "platform": "", "project_url": "https://pypi.org/project/audiorename/", "project_urls": { "Homepage": "https://github.com/Josef-Friedrich/audiorename" }, "release_url": "https://pypi.org/project/audiorename/2.0.1/", "requires_dist": null, "requires_python": "", "summary": "Rename audio files from metadata tags.", "version": "2.0.1" }, "last_serial": 4991100, "releases": { "1.2.4": [ { "comment_text": "", "digests": { "md5": "42aebbece10620cc1ef52a36fad8d9d8", "sha256": "e2a959a3b6561b8e6f7cdfdfcfe9b5587a0af2e413a996e3e2c8945b1784203a" }, "downloads": -1, "filename": "audiorename-1.2.4.tar.gz", "has_sig": false, "md5_digest": "42aebbece10620cc1ef52a36fad8d9d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62915, "upload_time": "2018-01-01T17:16:18", "url": "https://files.pythonhosted.org/packages/a7/e3/e9ca14459456b19021994b53f438bd282132663ddd9e490ac77ba83e4c8d/audiorename-1.2.4.tar.gz" } ], "1.2.5": [ { "comment_text": "", "digests": { "md5": "0e59a549935207ec4dd8922715063ade", "sha256": "a1a64eb8bf01b13d6e2533d91f908e230927ebc7105c47a9226295bba5982a4c" }, "downloads": -1, "filename": "audiorename-1.2.5.tar.gz", "has_sig": false, "md5_digest": "0e59a549935207ec4dd8922715063ade", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50203, "upload_time": "2018-01-04T10:20:17", "url": "https://files.pythonhosted.org/packages/1e/be/5fde14e6456be73f1fbebbb80e549b7c4feb25e73108dd560e756ec1293b/audiorename-1.2.5.tar.gz" } ], "1.2.6": [ { "comment_text": "", "digests": { "md5": "9860792c1acfa68ef408a973cd1d1af3", "sha256": "336f08eed529734d4cd9e8eeb823a91ab0f07e1d081aefd42dd621e5faf925a2" }, "downloads": -1, "filename": "audiorename-1.2.6.tar.gz", "has_sig": false, "md5_digest": "9860792c1acfa68ef408a973cd1d1af3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 58843, "upload_time": "2018-01-11T10:00:33", "url": "https://files.pythonhosted.org/packages/36/17/c0be617aa341d1680f1273bfe1c1a63d2780c90656b8fedf1c7a72ccffdb/audiorename-1.2.6.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "403490fd56888f0f34c46f71713c17e4", "sha256": "41a1ffb8a48299345da11790a249b4008f627ed46230fb44bbc6f3c64c841849" }, "downloads": -1, "filename": "audiorename-1.3.0.tar.gz", "has_sig": false, "md5_digest": "403490fd56888f0f34c46f71713c17e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61966, "upload_time": "2018-02-01T16:29:03", "url": "https://files.pythonhosted.org/packages/dd/89/c8d2be141e269eec86ee2a33928502ff9377ff8b4226a067cd7c16e7f78b/audiorename-1.3.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "82205c94863d30d292d22eb9fea304ee", "sha256": "98292f4c1e24fc1795dcf165e8dbc11cd9470be0d266f42ad13c1f760b6b3211" }, "downloads": -1, "filename": "audiorename-2.0.1.tar.gz", "has_sig": false, "md5_digest": "82205c94863d30d292d22eb9fea304ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46561, "upload_time": "2019-03-27T07:09:41", "url": "https://files.pythonhosted.org/packages/ae/44/cab0fe11597925255ff3f9091d7a198d50e7c03fe3c954d1d5ae2abd2f24/audiorename-2.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "82205c94863d30d292d22eb9fea304ee", "sha256": "98292f4c1e24fc1795dcf165e8dbc11cd9470be0d266f42ad13c1f760b6b3211" }, "downloads": -1, "filename": "audiorename-2.0.1.tar.gz", "has_sig": false, "md5_digest": "82205c94863d30d292d22eb9fea304ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46561, "upload_time": "2019-03-27T07:09:41", "url": "https://files.pythonhosted.org/packages/ae/44/cab0fe11597925255ff3f9091d7a198d50e7c03fe3c954d1d5ae2abd2f24/audiorename-2.0.1.tar.gz" } ] }