{"id":19128742,"url":"https://github.com/franckferman/audio_splitter","last_synced_at":"2026-03-07T15:31:36.703Z","repository":{"id":261892709,"uuid":"885642923","full_name":"franckferman/audio_splitter","owner":"franckferman","description":"🎶 A simple yet powerful tool to split audio files using FFmpeg. CLI-based audio segmentation made easy.","archived":false,"fork":false,"pushed_at":"2025-03-15T13:24:34.000Z","size":22,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"stable","last_synced_at":"2025-04-09T02:41:36.845Z","etag":null,"topics":["audio","audio-procesing-tool","audio-processing","audio-processing-tools","audio-processor","audio-split","audio-splitter","ffmpeg","ffmpeg-py","ffmpeg-python","ffmpeg-split","ffmpeg-splitter","ffmpeg-wrapper","mp3-cutter","python","python3","split","split-audio","splitter","splitter-audio"],"latest_commit_sha":null,"homepage":"https://github.com/franckferman/audio_splitter","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/franckferman.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-09T02:33:46.000Z","updated_at":"2025-04-02T14:21:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"d426ad7e-ec83-4c63-8fa6-6f71ebe609e2","html_url":"https://github.com/franckferman/audio_splitter","commit_stats":null,"previous_names":["franckferman/audio_splitter"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/franckferman/audio_splitter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franckferman%2Faudio_splitter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franckferman%2Faudio_splitter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franckferman%2Faudio_splitter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franckferman%2Faudio_splitter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/franckferman","download_url":"https://codeload.github.com/franckferman/audio_splitter/tar.gz/refs/heads/stable","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franckferman%2Faudio_splitter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30219541,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T14:02:48.375Z","status":"ssl_error","status_checked_at":"2026-03-07T14:02:43.192Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","audio-procesing-tool","audio-processing","audio-processing-tools","audio-processor","audio-split","audio-splitter","ffmpeg","ffmpeg-py","ffmpeg-python","ffmpeg-split","ffmpeg-splitter","ffmpeg-wrapper","mp3-cutter","python","python3","split","split-audio","splitter","splitter-audio"],"created_at":"2024-11-09T06:05:25.376Z","updated_at":"2026-03-07T15:31:36.660Z","avatar_url":"https://github.com/franckferman.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv id=\"top\" align=\"center\"\u003e\r\n\r\n\u003c!-- Shields Header --\u003e\r\n[![Contributors][contributors-shield]](https://github.com/franckferman/audio_splitter/graphs/contributors)\r\n[![Forks][forks-shield]](https://github.com/franckferman/audio_splitter/network/members)\r\n[![Stargazers][stars-shield]](https://github.com/franckferman/audio_splitter/stargazers)\r\n[![License][license-shield]](https://github.com/franckferman/audio_splitter/blob/stable/LICENSE)\r\n\r\n\u003c!-- Title \u0026 Tagline --\u003e\r\n\u003ch3 align=\"center\"\u003e🎶 audio_splitter\u003c/h3\u003e\r\n\u003cp align=\"center\"\u003e\r\n    \u003cem\u003eA simple yet powerful tool to split audio files using FFmpeg.\u003c/em\u003e\r\n    \u003cbr\u003e\r\n    CLI-based audio segmentation made easy.\r\n\u003c/p\u003e\r\n\r\n\u003c/div\u003e\r\n\r\n## 📜 Table of Contents\r\n\r\n\u003cdetails open\u003e\r\n  \u003csummary\u003e\u003cstrong\u003eClick to collapse/expand\u003c/strong\u003e\u003c/summary\u003e\r\n  \u003col\u003e\r\n    \u003cli\u003e\u003ca href=\"#-about\"\u003e📖 About\u003c/a\u003e\u003c/li\u003e\r\n    \u003cli\u003e\u003ca href=\"#-installation\"\u003e🛠️ Installation\u003c/a\u003e\u003c/li\u003e\r\n    \u003cli\u003e\u003ca href=\"#-usage\"\u003e🎮 Usage\u003c/a\u003e\u003c/li\u003e\r\n    \u003cli\u003e\u003ca href=\"#-contributing\"\u003e🤝 Contributing\u003c/a\u003e\u003c/li\u003e\r\n    \u003cli\u003e\u003ca href=\"#-star-evolution\"\u003e🌠 Star Evolution\u003c/a\u003e\u003c/li\u003e\r\n    \u003cli\u003e\u003ca href=\"#-license\"\u003e📜 License\u003c/a\u003e\u003c/li\u003e\r\n    \u003cli\u003e\u003ca href=\"#-contact\"\u003e📞 Contact\u003c/a\u003e\u003c/li\u003e\r\n  \u003c/ol\u003e\r\n\u003c/details\u003e\r\n\r\n## 📖 About\r\n\r\n`audio_splitter` is a lightweight CLI tool built to split audio files (and automatically extract audio from video files) into smaller, fixed-duration segments using FFmpeg and the Python library ffmpeg-python.\r\n\r\nI initially developed `audio_splitter` to complement my other project, [Whisper_Transcriber](https://github.com/franckferman/Whisper_Transcriber), enhancing the workflow for transcribing audio files via OpenAI's Whisper API. Two main motivations drove the creation of this utility:\r\n- Whisper's API Duration Limit: Whisper API strictly limits the maximum audio duration per transcription request, necessitating prior audio segmentation.\r\n- Clearer Cost Monitoring \u0026 Control: Splitting audio into shorter segments allows for precise monitoring of transcription costs per request, enabling better budget management and visibility into Whisper API credit usage.\r\n\r\n`audio_splitter` seamlessly handles multiple audio formats (MP3, WAV, M4A, FLAC, etc.) and extracts audio from popular video formats (MP4, AVI, MKV, MOV), converting them automatically into MP3 segments. It thus provides a practical solution for audio management and transcription tasks.\r\n\r\n\u003e The primary goal of audio_splitter is to streamline and simplify audio preprocessing, offering a straightforward and effective solution to quickly segment lengthy audio and video recordings—especially when used in conjunction with tools like `Whisper_Transcriber`.\r\n\r\n⚙️ Features of _audio_splitter_\r\n\r\n- ✅ Quickly splits audio and video files into customizable-duration segments.\r\n- ✅ Supports major audio formats (MP3, WAV, M4A, FLAC, and others).\r\n- ✅ Automatically extracts and converts audio tracks from videos (MP4, AVI, MKV, MOV).\r\n- ✅ Fast and accurate segmentation powered by FFmpeg and the Python package ffmpeg-python.\r\n- ✅ Built-in utility for cleaning temporary files (e.g., .pyc, cache, logs).\r\n- ✅ Intuitive and user-friendly CLI, with optional detailed logging and debug mode.\r\n\r\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003e🔼 Back to top\u003c/a\u003e)\u003c/p\u003e\r\n\r\n## 🚀 Installation\r\n\r\nBefore getting started, make sure you meet the following prerequisites.\r\n\r\n### Prerequisites\r\n\r\n1. **Python 3**: Ensure Python 3 is installed on your system.\r\n\r\n\u003e ⚠️ Note: audio_splitter has been tested on Python 3.11.10 under Linux. While it might work on other versions or operating systems, compatibility is officially guaranteed only for this specific setup.\r\n\r\n2. **Dependencies**: Install the required Python dependencies using pip:\r\n```bash\r\npip install -r requirements.txt\r\n```\r\n\r\n\u003e ffmpeg-python requires FFmpeg to be installed on your system. Please ensure that FFmpeg is installed and accessible via your system's PATH.\r\n\r\n### Installation Methods\r\n\r\n1. **Clone the repository via Git**:\r\n```bash\r\ngit clone https://github.com/franckferman/audio_splitter.git\r\n```\r\n\r\n### 2. **Direct Download** from GitHub\r\n1. Go to GitHub repo.\r\n2. Click `\u003c\u003e Code` → `Download ZIP`.\r\n3. Extract the archive to your desired location.\r\n\r\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003e🔼 Back to top\u003c/a\u003e)\u003c/p\u003e\r\n\r\n## 🎮 Usage\r\n\r\nBelow you'll find common commands and usage examples for `audio_splitter`.\r\n\r\n### 🚦 Quick Start\r\n\r\nTo quickly view all available commands and options:\r\n```bash\r\npython3 src/audio_splitter.py --help\r\n```\r\n\r\n### 📖 Available Commands\r\n\r\n- split: Splits audio files into segments of customizable duration.\r\n- clean: Cleans temporary and unwanted files from the project.\r\n\r\n#### 🎧 Splitting Audio Files\r\n\r\nUse the split command to split audio files into smaller segments.\r\n\r\n##### Basic Splitting Example\r\n\r\nSplit an audio file into segments of 10 minutes (600 seconds) each:\r\n```bash\r\npython3 src/audio_splitter.py split ./audio/example.mp3 ./output/ --duration 600\r\n```\r\n\r\n##### Options Explained\r\n\r\n| Argument | Description | Example |\r\n| --- | --- | --- |\r\n| `input_file` | Path to the input audio/video file | `./my_audio.mp3` |\r\n| `output_folder` | Directory where split segments will be saved | `./output` |\r\n| `-d, --duration` | Duration in seconds of each segment (default: 600) | `-d 300` (5-minute segments) |\r\n| `--debug` | Enable verbose debug logging | `--debug` |\r\n\r\n#### 🧙‍♂️ Advanced Example\r\n\r\nSplit a video file (e.g., MP4) by extracting audio automatically and creating 5-minute segments with debug enabled:\r\n```bash\r\npython3 src/audio_splitter.py split ./videos/lecture.mp4 ./segments/ --duration 300 --debug\r\n```\r\n\r\n#### 🧹 Cleaning Temporary Files\r\n\r\nUse the clean command to remove temporary files from your project.\r\n\r\n##### Basic Cleanup Example\r\n\r\nTo clean temporary files (like .pyc, __pycache__) from your current directory:\r\n```bash\r\npython3 src/audio_splitter.py clean\r\n```\r\n\r\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003e🔼 Back to top\u003c/a\u003e)\u003c/p\u003e\r\n\r\n## 🤝 Contributing\r\n\r\nWe truly appreciate and welcome community involvement. Your contributions, feedback, and suggestions play a crucial role in improving the project for everyone. If you're interested in contributing or have ideas for enhancements, please feel free to open an issue or submit a pull request on our GitHub repository. Every contribution, no matter how big or small, is highly valued and greatly appreciated!\r\n\r\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003e🔼 Back to top\u003c/a\u003e)\u003c/p\u003e\r\n\r\n## 🌠 Star Evolution\r\n\r\nExplore the star history of this project and see how it has evolved over time:\r\n\r\n\u003ca href=\"https://star-history.com/#franckferman/audio_splitter\u0026Timeline\"\u003e\r\n  \u003cpicture\u003e\r\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=franckferman/audio_splitter\u0026type=Timeline\u0026theme=dark\" /\u003e\r\n    \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=franckferman/audio_splitter\u0026type=Timeline\" /\u003e\r\n  \u003c/picture\u003e\r\n\u003c/a\u003e\r\n\r\nYour support is greatly appreciated. We're grateful for every star! Your backing fuels our passion. ✨\r\n\r\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003e🔼 Back to top\u003c/a\u003e)\u003c/p\u003e\r\n\r\n## 📚 License\r\n\r\nThis project is licensed under the GNU Affero General Public License, Version 3.0. For more details, please refer to the LICENSE file in the repository: [Read the license on GitHub](https://github.com/franckferman/audio_splitter/blob/stable/LICENSE)\r\n\r\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003e🔼 Back to top\u003c/a\u003e)\u003c/p\u003e\r\n\r\n## 📞 Contact\r\n\r\n[![ProtonMail][protonmail-shield]](mailto:contact@franckferman.fr)\r\n[![LinkedIn][linkedin-shield]](https://www.linkedin.com/in/franckferman)\r\n[![Twitter][twitter-shield]](https://www.twitter.com/franckferman)\r\n\r\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003e🔼 Back to top\u003c/a\u003e)\u003c/p\u003e\r\n\r\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\r\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\r\n[contributors-shield]: https://img.shields.io/github/contributors/franckferman/audio_splitter.svg?style=for-the-badge\r\n[contributors-url]: https://github.com/franckferman/audio_splitter/graphs/contributors\r\n[forks-shield]: https://img.shields.io/github/forks/franckferman/audio_splitter.svg?style=for-the-badge\r\n[forks-url]: https://github.com/franckferman/audio_splitter/network/members\r\n[stars-shield]: https://img.shields.io/github/stars/franckferman/audio_splitter.svg?style=for-the-badge\r\n[stars-url]: https://github.com/franckferman/audio_splitter/stargazers\r\n[license-shield]: https://img.shields.io/github/license/franckferman/audio_splitter.svg?style=for-the-badge\r\n[license-url]: https://github.com/franckferman/audio_splitter/blob/stable/LICENSE\r\n[protonmail-shield]: https://img.shields.io/badge/ProtonMail-8B89CC?style=for-the-badge\u0026logo=protonmail\u0026logoColor=blueviolet\r\n[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge\u0026logo=linkedin\u0026colorB=blue\r\n[twitter-shield]: https://img.shields.io/badge/-Twitter-black.svg?style=for-the-badge\u0026logo=twitter\u0026colorB=blue\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffranckferman%2Faudio_splitter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffranckferman%2Faudio_splitter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffranckferman%2Faudio_splitter/lists"}