# FFcuesplitter - FFmpeg-based audio splitter for CDDA images associated with .cue files .
[![Image](https://img.shields.io/static/v1?label=python&logo=python&message=3.8%20|%203.9%20|%203.10%20|%203.11%20|%203.12&color=blue)](https://www.python.org/downloads/)
[![Python application](https://github.com/jeanslack/FFcuesplitter/actions/workflows/CI.yml/badge.svg)](https://github.com/jeanslack/FFcuesplitter/actions/workflows/CI.yml)
FFcuesplitter is a multi-platform CUE sheet splitter entirely based on FFmpeg.
Splits big audio tracks and automatically embeds tags using the information
contained in the associated **"CUE"** sheet. It supports multiple CUE sheet
encodings and many input formats (due to FFmpeg), including APE format, without
need installing extra audio libs and packages. It has the ability to accept both
files and directories as input while also working in recursive mode. It can be
used either as a [Python module](https://github.com/jeanslack/FFcuesplitter#using-python)
or from the [command line](https://github.com/jeanslack/FFcuesplitter#using-command-line).
## Features
- Supports many input formats, due to FFmpeg.
- Convert to Wav, Flac, Ogg, Opus, and Mp3 formats.
- Ability to copy source codec and format without re-encoding.
- Batch mode processing is also available.
- Accepts both files and directories.
- Ability to perform recursive searches.
- Ability to generate audio collection directories (Artist/Album/TrackNumber - Title)
- Auto-tag from CUE file data.
- Features automatic character set detection for CUE files (via [chardet](https://pypi.org/project/chardet/)).
- Works on Linux, MacOs, FreeBSD, Windows.
- It can be used either as a Python module or from the command line.
## Requires
- Python >=3.8
- [deflacue](https://pypi.org/project/deflacue/)
- [chardet](https://pypi.org/project/chardet/)
- [tqdm](https://pypi.org/project/tqdm/#description)
- [FFmpeg](https://ffmpeg.org/) *(including ffprobe)*
## Using Command Line
```
ffcuesplitter -i FILENAMES DIRNAMES [FILENAMES DIRNAMES ...]
[-r]
[-f {wav,flac,mp3,ogg,opus,copy}]
[-o OUTPUTDIR]
[-c {artist+album,artist,album}]
[-ow {ask,never,always}]
[--ffmpeg-cmd URL]
[--ffmpeg-loglevel {error,warning,info,verbose,debug}]
[--ffmpeg-add-params 'parameters']
[-p {tqdm,standard}]
[--ffprobe-cmd URL]
[--dry]
[--prg-loglevel {error,warning,info,debug}]
[-h]
[--version]
```
**Examples**
`ffcuesplitter -i 'inputfile_1.cue' 'inputfile_2.cue' 'inputfile_3.cue'`
Batch file processing to split and convert to default audio `flac` format.
`ffcuesplitter -i '/User/music/collection/inputfile.cue' -f ogg -o 'my_awesome_tracklist'`
To splits the individual audio tracks into `ogg` format
and saves them in the `my_awesome_tracklist` directory.
**For further information and other examples visit the [wiki page](https://github.com/jeanslack/FFcuesplitter/wiki)**
***
## Using Python
```python
>>> from ffcuesplitter.cuesplitter import FFCueSplitter
>>> getdata = FFCueSplitter(**kwargs)
>>> tracks = getdata.audiotracks # get all tracks data
>>> getdata.commandargs(tracks) # get FFmpeg command/arguments recipes.
```
#### Getting additionals data
```python
>>> getdata.probedata # ffprobe data of the sources audio files.
>>> getdata.cue.meta.data # get CD info.
```
**For further information and other examples visit the [wiki page](https://github.com/jeanslack/FFcuesplitter/wiki)**
***
## Installation
`python3 -m pip install ffcuesplitter`
## License and Copyright
Copyright: (C) 2024 Gianluca Pernigotto
Author and Developer: Gianluca Pernigotto
Mail: <jeanlucperni@gmail.com>
License: GPL3 (see LICENSE file in the source directory)
Raw data
{
"_id": null,
"home_page": null,
"name": "ffcuesplitter",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "Gianluca Pernigotto <jeanlucperni@gmail.com>",
"keywords": "audio splitter, converter, ffcuesplitter, ffmpeg",
"author": null,
"author_email": "Gianluca Pernigotto <jeanlucperni@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/ac/41/ed4613befde15e0ba43ffd6c4aeb28857b0de8e7481adbb9a76422e84fd8/ffcuesplitter-1.0.25.tar.gz",
"platform": null,
"description": "# FFcuesplitter - FFmpeg-based audio splitter for CDDA images associated with .cue files .\n\n[![Image](https://img.shields.io/static/v1?label=python&logo=python&message=3.8%20|%203.9%20|%203.10%20|%203.11%20|%203.12&color=blue)](https://www.python.org/downloads/)\n[![Python application](https://github.com/jeanslack/FFcuesplitter/actions/workflows/CI.yml/badge.svg)](https://github.com/jeanslack/FFcuesplitter/actions/workflows/CI.yml)\n\nFFcuesplitter is a multi-platform CUE sheet splitter entirely based on FFmpeg.\nSplits big audio tracks and automatically embeds tags using the information\ncontained in the associated **\"CUE\"** sheet. It supports multiple CUE sheet\nencodings and many input formats (due to FFmpeg), including APE format, without\nneed installing extra audio libs and packages. It has the ability to accept both\nfiles and directories as input while also working in recursive mode. It can be \nused either as a [Python module](https://github.com/jeanslack/FFcuesplitter#using-python) \nor from the [command line](https://github.com/jeanslack/FFcuesplitter#using-command-line).\n\n## Features\n\n- Supports many input formats, due to FFmpeg.\n- Convert to Wav, Flac, Ogg, Opus, and Mp3 formats.\n- Ability to copy source codec and format without re-encoding.\n- Batch mode processing is also available.\n- Accepts both files and directories.\n- Ability to perform recursive searches.\n- Ability to generate audio collection directories (Artist/Album/TrackNumber - Title)\n- Auto-tag from CUE file data.\n- Features automatic character set detection for CUE files (via [chardet](https://pypi.org/project/chardet/)).\n- Works on Linux, MacOs, FreeBSD, Windows.\n- It can be used either as a Python module or from the command line.\n\n## Requires\n\n- Python >=3.8\n- [deflacue](https://pypi.org/project/deflacue/)\n- [chardet](https://pypi.org/project/chardet/)\n- [tqdm](https://pypi.org/project/tqdm/#description)\n- [FFmpeg](https://ffmpeg.org/) *(including ffprobe)*\n\n\n## Using Command Line\n\n```\nffcuesplitter -i FILENAMES DIRNAMES [FILENAMES DIRNAMES ...]\n [-r]\n [-f {wav,flac,mp3,ogg,opus,copy}]\n [-o OUTPUTDIR]\n [-c {artist+album,artist,album}]\n [-ow {ask,never,always}]\n [--ffmpeg-cmd URL]\n [--ffmpeg-loglevel {error,warning,info,verbose,debug}]\n [--ffmpeg-add-params 'parameters']\n [-p {tqdm,standard}]\n [--ffprobe-cmd URL]\n [--dry]\n [--prg-loglevel {error,warning,info,debug}]\n [-h]\n [--version]\n```\n\n**Examples**\n\n`ffcuesplitter -i 'inputfile_1.cue' 'inputfile_2.cue' 'inputfile_3.cue'`\n\nBatch file processing to split and convert to default audio `flac` format.\n\n`ffcuesplitter -i '/User/music/collection/inputfile.cue' -f ogg -o 'my_awesome_tracklist'`\n\nTo splits the individual audio tracks into `ogg` format\nand saves them in the `my_awesome_tracklist` directory.\n\n**For further information and other examples visit the [wiki page](https://github.com/jeanslack/FFcuesplitter/wiki)**\n***\n\n## Using Python\n\n```python\n>>> from ffcuesplitter.cuesplitter import FFCueSplitter\n>>> getdata = FFCueSplitter(**kwargs)\n>>> tracks = getdata.audiotracks # get all tracks data\n>>> getdata.commandargs(tracks) # get FFmpeg command/arguments recipes.\n```\n#### Getting additionals data\n\n```python\n>>> getdata.probedata # ffprobe data of the sources audio files.\n>>> getdata.cue.meta.data # get CD info.\n```\n\n**For further information and other examples visit the [wiki page](https://github.com/jeanslack/FFcuesplitter/wiki)**\n***\n\n## Installation\n\n`python3 -m pip install ffcuesplitter`\n\n## License and Copyright\n\nCopyright: (C) 2024 Gianluca Pernigotto\nAuthor and Developer: Gianluca Pernigotto\nMail: <jeanlucperni@gmail.com>\nLicense: GPL3 (see LICENSE file in the source directory)\n",
"bugtrack_url": null,
"license": "GNU General Public License v3 (GPLv3)",
"summary": "FFmpeg-based audio splitter for CDDA images associated with .cue files .",
"version": "1.0.25",
"project_urls": {
"Documentation": "https://github.com/jeanslack/FFcuesplitter#readme",
"Homepage": "https://github.com/jeanslack/FFcuesplitter",
"Tracker": "https://github.com/jeanslack/Videomass/issues",
"Wiki": "https://github.com/jeanslack/FFcuesplitter/wiki"
},
"split_keywords": [
"audio splitter",
" converter",
" ffcuesplitter",
" ffmpeg"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "34db3a81674ba5cef79e7c42b8115ac0b3eb3afcde6ba50b8b36384ac204b8af",
"md5": "e50a0545988ea27ed5171c74039bb31e",
"sha256": "2ddc941739bc60ca3091bbf0d16febf786148be48da3849619062b8b09f2a42b"
},
"downloads": -1,
"filename": "ffcuesplitter-1.0.25-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e50a0545988ea27ed5171c74039bb31e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 38013,
"upload_time": "2024-10-22T18:18:27",
"upload_time_iso_8601": "2024-10-22T18:18:27.421150Z",
"url": "https://files.pythonhosted.org/packages/34/db/3a81674ba5cef79e7c42b8115ac0b3eb3afcde6ba50b8b36384ac204b8af/ffcuesplitter-1.0.25-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ac41ed4613befde15e0ba43ffd6c4aeb28857b0de8e7481adbb9a76422e84fd8",
"md5": "54db4d6fa49c487b6aac84daa9bfc12d",
"sha256": "71341e494cf5fbe0319c30b6e652b659d6f036ebaf51948c3ad6d398fe24d29b"
},
"downloads": -1,
"filename": "ffcuesplitter-1.0.25.tar.gz",
"has_sig": false,
"md5_digest": "54db4d6fa49c487b6aac84daa9bfc12d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 68314,
"upload_time": "2024-10-22T18:18:30",
"upload_time_iso_8601": "2024-10-22T18:18:30.509681Z",
"url": "https://files.pythonhosted.org/packages/ac/41/ed4613befde15e0ba43ffd6c4aeb28857b0de8e7481adbb9a76422e84fd8/ffcuesplitter-1.0.25.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-22 18:18:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jeanslack",
"github_project": "FFcuesplitter#readme",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "ffcuesplitter"
}