Commit | Line | Data |
---|---|---|
656dfa5d SBS |
1 | #!/bin/bash |
2 | # Desc: Split an audio file by chapter | |
3 | # Depends: ffmpeg, jq | |
75e491f4 | 4 | # Version: 0.0.1 |
656dfa5d SBS |
5 | # Ref/Attrib: [1] Hasan Arous. MIT license. https://unix.stackexchange.com/a/612124 |
6 | # [2] John Smith. https://unix.stackexchange.com/a/712600 | |
7 | ||
8 | in="$1"; | |
9 | out="$2"; | |
10 | splits=""; | |
11 | n=0; | |
12 | while read start end title; do | |
13 | newTitle="$(echo "$title" | sed "s/ /_/g")"; | |
14 | newTitle="$(printf "%02d..%s" "$n" "$newTitle")"; | |
15 | splits="$splits -c copy -ss $start -to $end $out/$newTitle.m4b"; | |
16 | ((n++)); | |
17 | done <<< $(ffprobe -i "$in" -print_format json -show_chapters \ | |
18 | | jq -r '.chapters[] | .start_time + " " + .end_time + " " + (.tags.title | sub(" "; "_"))'); | |
19 | ffmpeg -i "$in" $splits; | |
20 | ||
21 | # Author: Steven Baltakatei Sandoval | |
22 | # License: GPLv3+ |