Python CLI app for M3U playlists conversion and processing
Project description
🧐 About
Have you ever wanted to take your favorite offline playlist along? — I have.
This script makes it easier to do that. It converts your playlist with absolute paths to playlist with relative paths, and copies audio files to one folder with converted playlist. The only thing that remains to be done is to move this folder to your Android smartphone and open the playlist (or let a player to discover media for you).
Although, there is only one conversion way “Desktop AIMP -> VLC for Android” for now, but who knows what the future holds for us?
🚀 Features
Conversion from AIMP (desktop) .m3u / .m3u8 playlists into playlists suitable for playback in VLC for Android (with relative paths, replaced square brackets [ ] and hash # in songs filenames)
Copying songs from .m3u / .m3u8 playlists into destination folder (after playlist conversion and only .mp3 and .flac local files, for now)
Displaying only tracks from playlist (without M3U tag lines / comments)
Displaying a full content of playlist file
Creating a playlist from tracks of specified folder (with relative or absolute paths)
Injecting (appending) one playlist into another (top or bottom)
Creating an empty playlist file
TBD: Copying and conversion paths to relative, without replacing characters (“make relative playlist”)
🛠️ Requirements
Python 3.9 and higher
Installing Python is no different than installing other apps for your OS. Go to downloads page on python.org. Download the latest version for your OS or any version higher than 3.9.2. Then run Python installer and follow its steps.
💻 Installation
You can install Playlist Along via pip from PyPI:
$ pip install playlist-along
I do recommend you to use pipx for any CLI Python package. It let you install and run Python applications in isolated environments.
$ python -m pip install --user pipx
$ pipx install playlist-along
$ playlist-along --version
🕹 Usage
Please see the Usage Examples or the Command-line Reference for details.
✊ Contributing
If you want to suggest a new feature or to ask questions about this project, you can open a new discussion.
Want to implement or fix something? - contributions are very welcome. To learn more, see the Contributor Guide.
📝 License
Distributed under the terms of the MIT license, Playlist Along is free and open source software.
🐞 Issues
If you encounter any problems, please see project discussions first or file an issue along with a detailed description.
🙏🏻 Credits
This project was generated from @cjolowicz’s Hypermodern Python Cookiecutter template.
Script uses the following packages / libraries under the hood:
Click, of course (BSD-3-Clause License)
charset_normalizer, for auto encoding detecting of playlist files (MIT License)
single-source, for getting project version from anywhere (MIT License)
natsort, to get tracks order as you see in File Explorer (MIT License)
mutagen, to handle audio metadata (GPL-2.0 License)
and other amazing Python packages for development and testing.
See a full list of dev dependencies in pyproject.toml here.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file playlist_along-2024.8.8.tar.gz
.
File metadata
- Download URL: playlist_along-2024.8.8.tar.gz
- Upload date:
- Size: 12.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b0c277dd1571ca2fca5dc9da8b27c17b913472ead868f1053c06882770d009c |
|
MD5 | 7504323c770b715e38cd99ed88cbf138 |
|
BLAKE2b-256 | 1f9a764595c6f1194a5d6f46336e9c5687e97cbf73315bf5d98e021df9a624de |
File details
Details for the file playlist_along-2024.8.8-py3-none-any.whl
.
File metadata
- Download URL: playlist_along-2024.8.8-py3-none-any.whl
- Upload date:
- Size: 13.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd5ef143010b861332f93e34889efc1079d31a02ba6203692fbb674de49e2d4f |
|
MD5 | 05930c12c9c4c60855bb2898acd904e7 |
|
BLAKE2b-256 | 2b8d9a63930ec00debfe36f3628ecf93e9e03fefb70995ff2ea9bac15568a985 |