From 290eda09bd03c8b369ca59ca2f01dfe63fd4fca7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ma=C3=ABl=20=27Kubat=27=20MARTIN?= <mael.martin31@gmail.com>
Date: Sun, 11 Aug 2019 11:26:37 +0200
Subject: [PATCH] Added extractAss.sh and update permissions of script files

---
 extractAss.sh | 34 ++++++++++++++++++++++++++++++++++
 extractWav.sh | 14 +++++++-------
 2 files changed, 41 insertions(+), 7 deletions(-)
 create mode 100755 extractAss.sh
 mode change 100644 => 100755 extractWav.sh

diff --git a/extractAss.sh b/extractAss.sh
new file mode 100755
index 0000000..cf5dcdd
--- /dev/null
+++ b/extractAss.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+##########################################################################################################
+#
+# COMMAND : extractAss.sh
+#
+# AUTHOR : Kubat
+#
+# DESCRIPTION : CLI tool to extract subtitles from .mkv files
+#
+# USE : ./extractAss.sh fileInput.mkv fileOutput.ass
+#
+# REQUIREMENTS : Have FFMPEG and SoX installed (for audio/video decoding)
+#
+#
+##########################################################################################################
+
+USAGE_MESSAGE="usage : $0 fileInput.mkv fileOutput.ass"
+if [ $# != 2 ]
+then
+  echo $USAGE_MESSAGE
+  exit 1
+fi
+
+if ! [[ "$1" =~ .mkv$ ]] || ! [[ "$2" =~ .ass$ ]]
+then
+  echo $USAGE_MESSAGE
+  exit 1
+fi
+
+# get the subtitles track id
+ID=$(mkvmerge --identify "$1" | sed -n 's/Track ID \([[:digit:]]*\).*subtitles.*/\1/p')
+
+mkvextract tracks "$1" "$ID":"$2"
diff --git a/extractWav.sh b/extractWav.sh
old mode 100644
new mode 100755
index 17d6688..838fe29
--- a/extractWav.sh
+++ b/extractWav.sh
@@ -32,14 +32,14 @@ for filename in "$1"/*.mkv; do
 	[ -e "$filename" ] || continue
 	name=${filename##*/}
         base=${name%.mkv}
-		
+
 	codecLine=$(mkvinfo "$filename" | grep " A_")
 	regex=".*A_([A-Z0-9]+).*"
-	
+
 	[[ $codecLine =~ $regex ]]
 
 	codec=${BASH_REMATCH[1]}
-		
+
 	case $codec in
 
   		"AAC")
@@ -57,7 +57,7 @@ for filename in "$1"/*.mkv; do
   		"MPEG")
 			extension="mp3"
     			;;
-		
+
 		"AC3")
 			extension="ac3"
 			;;
@@ -72,8 +72,8 @@ for filename in "$1"/*.mkv; do
 
 		*)
 			extension=""
-			;;	
-	
+			;;
+
 	esac
 
 
@@ -81,7 +81,7 @@ for filename in "$1"/*.mkv; do
 	ffmpeg -i "$filename" -acodec copy -vn "$2/$base.$extension" && \
 	ffmpeg -i "$2/$base.$extension" "$2/$base.stereo.wav" && \
 	sox "$2/$base.stereo.wav" "$2/$base.wav" remix - && \
-	rm "$2/$base.stereo.wav" && \	
+	rm "$2/$base.stereo.wav" && \
 	rm "$2/$base.$extension"
 
 done
-- 
GitLab