Compare commits
3 Commits
50d9961d19
...
9d435e9216
Author | SHA1 | Date |
---|---|---|
Lukáš Kucharczyk | 9d435e9216 | |
Lukáš Kucharczyk | 17574160da | |
Lukáš Kucharczyk | 0e53f76531 |
|
@ -1,4 +1,8 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
colorprint() {
|
||||||
|
echo -e "\e[31m${1}\e[0m"
|
||||||
|
}
|
||||||
SCRIPT_NAME=$(basename "$0")
|
SCRIPT_NAME=$(basename "$0")
|
||||||
test -z "${1}" && echo "File not specified or doesn't exist, aborting. Usage: $SCRIPT_NAME \$FILENAME" && exit 1
|
test -z "${1}" && echo "File not specified or doesn't exist, aborting. Usage: $SCRIPT_NAME \$FILENAME" && exit 1
|
||||||
FILE=$1
|
FILE=$1
|
||||||
|
@ -6,14 +10,24 @@ FILE=$1
|
||||||
TRACKS=$(mkvmerge --identify "$FILE" | awk -F"[: ]" '$0 ~ /Track ID/{print $3}')
|
TRACKS=$(mkvmerge --identify "$FILE" | awk -F"[: ]" '$0 ~ /Track ID/{print $3}')
|
||||||
# capture JSON output and remove the excessively large code_private_data field
|
# capture JSON output and remove the excessively large code_private_data field
|
||||||
JSON_OUTPUT=$(mkvmerge -J "$FILE" | jq '.tracks[] | del(.properties.codec_private_data)')
|
JSON_OUTPUT=$(mkvmerge -J "$FILE" | jq '.tracks[] | del(.properties.codec_private_data)')
|
||||||
|
echo -n "Processing "
|
||||||
|
colorprint "$FILE"
|
||||||
for TRACK in $TRACKS; do
|
for TRACK in $TRACKS; do
|
||||||
TRACK_NAME=$(echo "$JSON_OUTPUT" | jq "select(.id == $TRACK).properties.track_name")
|
TRACK_DATA=$(echo "$JSON_OUTPUT" | jq "select(.id == $TRACK)")
|
||||||
echo -n "Track no. ${TRACK} currently set to $TRACK_NAME... "
|
TRACK_NAME=$(echo "$TRACK_DATA" | jq ".properties.track_name")
|
||||||
|
TRACK_TYPE=$(echo "$TRACK_DATA" | jq ".type")
|
||||||
|
TRACK_CODEC=$(echo "$TRACK_DATA" | jq ".codec")
|
||||||
|
TRACK_LANGUAGE=$(echo "$TRACK_DATA" | jq ".properties.language")
|
||||||
|
echo -en "\tTrack no. ${TRACK} (${TRACK_TYPE}, ${TRACK_CODEC}, ${TRACK_LANGUAGE})... "
|
||||||
|
[[ $TRACK_NAME == "null" ]] && echo "has no title, skipping." && continue
|
||||||
|
echo -n "currently set to $TRACK_NAME... "
|
||||||
shopt -s nocasematch
|
shopt -s nocasematch
|
||||||
[[ $TRACK_NAME =~ full|\stitles|comment|director|sdh|sign ]] && echo "includes whitelisted word, not deleting." && continue
|
[[ $TRACK_NAME =~ full|\stitles|comment|director|sdh|sign ]] && echo "includes whitelisted word, not deleting." && continue
|
||||||
echo "deleting."
|
echo -n "deleting... "
|
||||||
# mkvmerge --identify indexes tracks from 0, while mkvpropedit indexes from 1
|
# mkvmerge --identify indexes tracks from 0, while mkvpropedit indexes from 1
|
||||||
mkvpropedit "$FILE" --edit track:"$((TRACK+1))" --delete name
|
mkvpropedit "$FILE" --edit track:"$((TRACK+1))" --delete name &>/dev/null
|
||||||
|
echo "done."
|
||||||
done
|
done
|
||||||
echo "Deleting file title..."
|
echo -en "\tDeleting file title... "
|
||||||
mkvpropedit "$FILE" --edit info --delete title
|
mkvpropedit "$FILE" --edit info --delete title &>/dev/null
|
||||||
|
echo "done."
|
||||||
|
|
Loading…
Reference in New Issue