diff options
| author | Marc Vertes <mvertes@free.fr> | 2025-02-24 11:52:58 +0100 |
|---|---|---|
| committer | Marc Vertes <mvertes@free.fr> | 2025-02-24 11:52:58 +0100 |
| commit | 17d348db1738a536319de62229c233e764766087 (patch) | |
| tree | 19c57dfb03b05c9a814825d64da73ae253c19bbc /bin | |
| parent | 9921f42676ea8361ea3d14bc1c9c5e184dfe5e07 (diff) | |
add mp3 scripts
Diffstat (limited to 'bin')
| -rwxr-xr-x | bin/cpmp3 | 7 | ||||
| -rwxr-xr-x | bin/fixmp3name | 11 | ||||
| -rwxr-xr-x | bin/fixnames | 31 | ||||
| -rwxr-xr-x | bin/flac2mp3 | 22 | ||||
| -rwxr-xr-x | bin/m4a2mp3 | 15 |
5 files changed, 86 insertions, 0 deletions
diff --git a/bin/cpmp3 b/bin/cpmp3 new file mode 100755 index 0000000..49d17cf --- /dev/null +++ b/bin/cpmp3 @@ -0,0 +1,7 @@ +#!/bin/sh + +find . -name "*.mp3" | while read -r name; do + d="../mp3/${name%/*}" + mkdir -p "$d" + cp "$name" "$d" +done diff --git a/bin/fixmp3name b/bin/fixmp3name new file mode 100755 index 0000000..f2f4053 --- /dev/null +++ b/bin/fixmp3name @@ -0,0 +1,11 @@ +#!/bin/sh + +case $1 in +*.flac.mp3) n="${1%.flac.mp3}.mp3" ;; +*.m4a.mp3) n="${1%.m4a.mp3}.mp3" ;; +*) n="$1" ;; +esac + +[ "$1" = "$n" ] && exit +echo "$n" +mv "$1" "$n" diff --git a/bin/fixnames b/bin/fixnames new file mode 100755 index 0000000..dd1c5b3 --- /dev/null +++ b/bin/fixnames @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +# Fix filenames in music library: no spaces or special chars. + +fixname() { echo "$1" | iconv -f utf8 -cs -t ascii//IGNORE; } + +# 1: fix directories +for f in *; do + [ -d "$f" ] || continue + n=$(fixname "$f") + [ "$f" = "$n" ] && continue + echo "$n" + mv "$f" "$n" +done + +for f in */*; do + [ -d "$f" ] || continue + n=$(fixname "$f") + [ "$f" = "$n" ] && continue + echo "$n" + mv "$f" "$n" +done + +# 2: fix files +for f in */*/*; do + [ -f "$f" ] || continue + n=$(fixname "$f") + [ "$f" = "$n" ] && continue + echo "$n" + mv "$f" "$n" +done diff --git a/bin/flac2mp3 b/bin/flac2mp3 new file mode 100755 index 0000000..96e2cde --- /dev/null +++ b/bin/flac2mp3 @@ -0,0 +1,22 @@ +#!/bin/sh + +# This script should be launched from the root dir of music library. + +# Use highest quality VBR, preserve metadata: +# ffmpeg -i "$1" -q:a 0 "${1%.flac}.mp3" + +# get all mp3 already here and copy to dest +# find . -name "*.mp3" + +# Convert all flacs into mp3s +find . -name "*.flac" | while read -r in; do + out="../mp3/${in%.flac}.mp3" + dir="${out%/*}" + test -d "$dir" && continue + echo "$dir" + mkdir -p "$dir" +done + +find . -name "*.flac" -exec ffmpeg -i {} -c:v copy -q:a 0 ../mp3/{}.mp3 \; + +exit diff --git a/bin/m4a2mp3 b/bin/m4a2mp3 new file mode 100755 index 0000000..bc2584a --- /dev/null +++ b/bin/m4a2mp3 @@ -0,0 +1,15 @@ +#!/bin/sh + +# This script should be launched from the root dir of music library. + +find . -name "*.m4a" | while read -r in; do + out="../mp3/${in%.m4a}.mp3" + dir="${out%/*}" + test -d "$dir" && continue + echo "$dir" + mkdir -p "$dir" +done + +find . -name "*.m4a" -exec ffmpeg -i {} -c:v copy -q:a 0 ../mp3/{}.mp3 \; + +exit |
