# Exportify to TuneMyMusic Converter (ett) A Rust CLI tool to convert Spotify playlist CSV exports from Exportify to TuneMyMusic CSV format. ## Features - Convert CSV files from Exportify format to TuneMyMusic format - Process single files or entire directories of CSV files - Automatically detects when a directory is provided as input - Detailed validation and statistics reporting ## Build from Source 1. Clone this repository: ``` git clone cd exportify-to-tunemusic ``` 2. Build the project: ``` cargo build --release ``` 3. The binary will be available at `target/release/ett` ## Usage ### Single File Processing Convert a single Exportify CSV file to TuneMyMusic format: ``` ett [INPUT_FILE] [OUTPUT_FILE] ``` Where: - `[INPUT_FILE]` is the path to your Exportify CSV file (defaults to `exportify.csv`) - `[OUTPUT_FILE]` is the path where the converted file will be saved (defaults to `converted_tunemymusic.csv`) Example: ``` ett my_playlist.csv tunemymusic_output.csv ``` ### Directory Processing Process all CSV files in a directory: ``` ett --dir [INPUT_DIRECTORY] [OUTPUT_DIRECTORY] ``` or using the short flag: ``` ett -d [INPUT_DIRECTORY] [OUTPUT_DIRECTORY] ``` Where: - `[INPUT_DIRECTORY]` is the directory containing Exportify CSV files - `[OUTPUT_DIRECTORY]` is the directory where converted files will be saved Example: ``` ett --dir ~/Downloads/playlists ~/converted_playlists ``` Note: You can also omit the `--dir` flag - the tool will automatically detect if the input is a directory: ``` ett ~/Downloads/playlists ~/converted_playlists ``` ### Options - `-d, --dir`: Process all CSV files in a directory - `-h, --help`: Show help message - `-V, --version`: Show version information ## Output Format The output file will have the following columns, exactly matching TuneMyMusic's import format: - Track name - Artist name - Album - Playlist name - Type - ISRC - Spotify - id ## Dependencies This project uses the following crates: - `csv`: For CSV reading and writing - `serde`: For serialization/deserialization of CSV records - `clap`: For command-line argument parsing with a modern API ## License MIT