Buy Me a Coffee

Buy Me a Coffee!

Sunday, September 20, 2026

Renaming the files ripped from Schoolhouse Rock Special 30th Anniversary Edition for Plex

So, I am going a little bit astray this time and talking about a little bash script I had to create to rename the files I ripped from Schoolhouse Rock Special 30th Anniversary Edition using MakeMKV so Plex can correctly ingest them.  It isn't much, but it is honest work.  

#!/usr/bin/env bash
#
# Rename Schoolhouse Rock! Special 30th Anniversary Edition (2002 DVD) MakeMKV rips
# into Plex-friendly filenames: "Schoolhouse Rock - S01E01 - Title.mkv"
#
# HOW TO USE:
#   1. Run with --dry-run first to see what would happen (default).
#   2. Fill in any "TBD_" entries below once you've identified them (see notes).
#   3. Run with --apply to actually rename the files.
#
# HOW TO IDENTIFY UNKNOWN FILES:
#   ffplay -ss 5 -t 8 -autoexit "DISC1/H3_t37.mkv"   # plays 8 seconds starting at 0:05
#   (or open in VLC/mpv - most of these songs are recognizable within a few seconds)

set -euo pipefail

MODE="dry-run"
if [[ "${1:-}" == "--apply" ]]; then
  MODE="apply"
fi

declare -A RENAME_MAP

# -- S01: Multiplication Rock
RENAME_MAP["DISC1/H4_t36.mkv"]="Schoolhouse Rock - S01E01 - Three Is a Magic Number.mkv"
RENAME_MAP["DISC1/H1_t34.mkv"]="Schoolhouse Rock - S01E02 - My Hero, Zero.mkv"
RENAME_MAP["DISC1/H2_t35.mkv"]="Schoolhouse Rock - S01E03 - Elementary, My Dear.mkv"
RENAME_MAP["DISC1/H3_t37.mkv"]="Schoolhouse Rock - S01E04 - The Four-Legged Zoo.mkv"
RENAME_MAP["DISC1/H5_t38.mkv"]="Schoolhouse Rock - S01E05 - Ready or Not, Here I Come.mkv"
RENAME_MAP["DISC1/H7_t39.mkv"]="Schoolhouse Rock - S01E06 - I Got Six.mkv"
RENAME_MAP["DISC1/H8_t40.mkv"]="Schoolhouse Rock - S01E07 - Lucky Seven Sampson.mkv"
RENAME_MAP["DISC1/H9_t41.mkv"]="Schoolhouse Rock - S01E08 - Figure Eight.mkv"
RENAME_MAP["DISC1/H10_t42.mkv"]="Schoolhouse Rock - S01E09 - Naughty Number Nine.mkv"
RENAME_MAP["DISC1/H6_t43.mkv"]="Schoolhouse Rock - S01E10 - The Good Eleven.mkv"
RENAME_MAP["DISC1/H11_t44.mkv"]="Schoolhouse Rock - S01E11 - Little Twelvetoes.mkv"

# -- S02: Grammar Rock
RENAME_MAP["DISC1/F7_t21.mkv"]="Schoolhouse Rock - S02E01 - A Noun Is a Person, Place or Thing.mkv"
RENAME_MAP["DISC1/F3_t20.mkv"]="Schoolhouse Rock - S02E02 - Verb - That's What's Happening.mkv"
RENAME_MAP["DISC1/F5_t17.mkv"]="Schoolhouse Rock - S02E03 - Conjunction Junction.mkv"
RENAME_MAP["DISC1/F4_t18.mkv"]="Schoolhouse Rock - S02E04 - Interjections!.mkv"
RENAME_MAP["DISC1/F1_t15.mkv"]="Schoolhouse Rock - S02E05 - Unpack Your Adjectives.mkv"
RENAME_MAP["DISC1/F9_t16.mkv"]="Schoolhouse Rock - S02E06 - Lolly, Lolly, Lolly, Get Your Adverbs Here.mkv"
RENAME_MAP["DISC1/F2_t19.mkv"]="Schoolhouse Rock - S02E07 - Rufus Xavier Sarsaparilla.mkv"
RENAME_MAP["DISC1/F8_t22.mkv"]="Schoolhouse Rock - S02E08 - Busy Prepositions.mkv"
RENAME_MAP["DISC1/F6_t23.mkv"]="Schoolhouse Rock - S02E09 - The Tale of Mr. Morton.mkv"


# -- S03: America Rock
RENAME_MAP["DISC1/E5_t04.mkv"]="Schoolhouse Rock - S03E01 - No More Kings.mkv"
RENAME_MAP["DISC1/E6_t06.mkv"]="Schoolhouse Rock - S03E02 - The Shot Heard 'Round the World.mkv"
RENAME_MAP["DISC1/E4_t07.mkv"]="Schoolhouse Rock - S03E03 - The Preamble.mkv"
RENAME_MAP["DISC1/E7_t11.mkv"]="Schoolhouse Rock - S03E04 - Sufferin' Till Suffrage.mkv"
RENAME_MAP["DISC1/E10_t12.mkv"]="Schoolhouse Rock - S03E05 - I'm Just a Bill.mkv"
RENAME_MAP["DISC1/E8_t09.mkv"]="Schoolhouse Rock - S03E06 - The Great American Melting Pot.mkv"
RENAME_MAP["DISC1/E2_t08.mkv"]="Schoolhouse Rock - S03E07 - Elbow Room.mkv"
RENAME_MAP["DISC1/E3_t05.mkv"]="Schoolhouse Rock - S03E08 - Fireworks.mkv"
RENAME_MAP["DISC1/E1_t10.mkv"]="Schoolhouse Rock - S03E09 - Mother Necessity.mkv"
RENAME_MAP["DISC1/E9_t13.mkv"]="Schoolhouse Rock - S03E10 - Three-Ring Government.mkv"
RENAME_MAP["DISC1/B6_t54.mkv"]="Schoolhouse Rock - S03E11 - I'm Gonna Send Your Vote to College.mkv"
# RENAME_MAP[]="Schoolhouse Rock - S03E12 - Presidential Minute.mkv"

# -- S04: Science Rock
RENAME_MAP["DISC1/I5_t53.mkv"]="Schoolhouse Rock - S04E01 - A Victim of Gravity.mkv"
RENAME_MAP["DISC1/I2_t50.mkv"]="Schoolhouse Rock - S04E02 - Interplanet Janet.mkv"
RENAME_MAP["DISC1/I8_t46.mkv"]="Schoolhouse Rock - S04E03 - The Body Machine.mkv"
RENAME_MAP["DISC1/I3_t47.mkv"]="Schoolhouse Rock - S04E04 - Do the Circulation.mkv"
RENAME_MAP["DISC1/I7_t49.mkv"]="Schoolhouse Rock - S04E05 - The Energy Blues.mkv"
RENAME_MAP["DISC1/I1_t52.mkv"]="Schoolhouse Rock - S04E06 - The Not-So-Dry Bones.mkv"
RENAME_MAP["DISC1/I4_t48.mkv"]="Schoolhouse Rock - S04E07 - Electricity, Electricity.mkv"
RENAME_MAP["DISC1/I6_t51.mkv"]="Schoolhouse Rock - S04E08 - Telegraph Line.mkv"
RENAME_MAP["DISC2/N9_t04.mkv"]="Schoolhouse Rock - S04E09 - The Greatest Show on Earth.mkv"

# -- S05: Computer Rock
# RENAME_MAP[]="Schoolhouse Rock - S05E01 - Introduction - Scooter Computer And Mr Chips.mkv"
# RENAME_MAP[]="Schoolhouse Rock - S05E02 - Hardware.mkv"
# RENAME_MAP[]="Schoolhouse Rock - S05E03 - Software.mkv"
# RENAME_MAP[]="Schoolhouse Rock - S05E04 - Number Cruncher.mkv"

# -- S06: Money Rock
RENAME_MAP["DISC1/G7_t25.mkv"]="Schoolhouse Rock - S06E01 - Dollars And Sense.mkv"
RENAME_MAP["DISC1/G2_t28.mkv"]="Schoolhouse Rock - S06E02 - Tax Man Max.mkv"
RENAME_MAP["DISC1/G5_t27.mkv"]="Schoolhouse Rock - S06E03 - Where the Money Goes.mkv"
RENAME_MAP["DISC1/G4_t26.mkv"]="Schoolhouse Rock - S06E04 - Making 7.50 Once a Week.mkv"
RENAME_MAP["DISC1/G3_t31.mkv"]="Schoolhouse Rock - S06E05 - Tyrannosaurus Debt.mkv"
RENAME_MAP["DISC1/G6_t30.mkv"]="Schoolhouse Rock - S06E06 - This For That.mkv"
RENAME_MAP["DISC1/G1_t29.mkv"]="Schoolhouse Rock - S06E07 - Walkin' On Wall Street.mkv"
RENAME_MAP["DISC1/G8_t32.mkv"]="Schoolhouse Rock - S06E08 - The Check's In The Mail.mkv"

# -- S07: Earth Rock
# RENAME_MAP[]="Schoolhouse Rock - S07E01 - Report from the North Pole.mkv"
# RENAME_MAP[]="Schoolhouse Rock - S07E02 - The Little Things We Do.mkv"
# RENAME_MAP[]="Schoolhouse Rock - S07E03 - The Trash Can Band.mkv"
# RENAME_MAP[]="Schoolhouse Rock - S07E04 - You Oughta Be Savin' Water.mkv"
# RENAME_MAP[]="Schoolhouse Rock - S07E05 - The Rainforest.mkv"
# RENAME_MAP[]="Schoolhouse Rock - S07E06 - Save the Ocean.mkv"
# RENAME_MAP[]="Schoolhouse Rock - S07E07 - FatCat Blue: The Clean Rivers Song.mkv"
# RENAME_MAP[]="Schoolhouse Rock - S07E08 - A Tiny Urban Zoo.mkv"
# RENAME_MAP[]="Schoolhouse Rock - S07E09 - Solar Power to the People.mkv"
# RENAME_MAP[]="Schoolhouse Rock - S07E10 - Windy and the Windmills.mkv"
# RENAME_MAP[]="Schoolhouse Rock - S07E11 - Don't Be a Carbon Sasquatch.mkv"
# RENAME_MAP[]="Schoolhouse Rock - S07E12 - The 3 Rs.mkv"


# -- S08: Specials
RENAME_MAP["DISC2/Q1_t01.mkv"]="Schoolhouse Rock - S08E01 - Scooter Computer And Mr Chips.mkv"
RENAME_MAP["DISC2/Q2_t02.mkv"]="Schoolhouse Rock - S08E02 - Scooter Computer and Mr. Chips- Think Computer!.mkv"
RENAME_MAP["DISC2/Q3_t03.mkv"]="Schoolhouse Rock - S08E03 - Scooter Computer and Mr. Chips- Number Cruncher.mkv"
RENAME_MAP["DISC2/N6_t16.mkv"]="Schoolhouse Rock - S08E04 - Making of 'I'm Gonna Send Your Vote To College'.mkv"
RENAME_MAP["DISC2/N2_t22.mkv"]="Schoolhouse Rock - S08E05 - 'I'm Gonna Send Your Vote To College' In Surround.mkv"
RENAME_MAP["DISC2/N5_t17.mkv"]="Schoolhouse Rock - S08E06 - Emmy Awards Featurette.mkv"
# RENAME_MAP[]="Schoolhouse Rock - S08E07 - Nike Spot.mkv"
RENAME_MAP["DISC2/O1_t06.mkv"]="Schoolhouse Rock - S08E08 - Audio Commentary: Lolly, Lolly, Lolly Get Your Adverbs Here.mkv"
RENAME_MAP["DISC2/O2_t07.mkv"]="Schoolhouse Rock - S08E09 - Audio Commentary: Great American Melting Pot.mkv"
RENAME_MAP["DISC2/O3_t08.mkv"]="Schoolhouse Rock - S08E10 - Audio Commentary: Telegraph Line.mkv"
RENAME_MAP["DISC2/O4_t09.mkv"]="Schoolhouse Rock - S08E11 - Audio Commentary: Figure Eight.mkv"
RENAME_MAP["DISC2/O5_t10.mkv"]="Schoolhouse Rock - S08E12 - Audio Commentary: Interplanet Janet.mkv"
RENAME_MAP["DISC2/O6_t11.mkv"]="Schoolhouse Rock - S08E13 - Audio Commentary: Conjunction Junction.mkv"
RENAME_MAP["DISC2/O7_t12.mkv"]="Schoolhouse Rock - S08E14 - Audio Commentary: I'm Just A Bill.mkv"
RENAME_MAP["DISC2/O8_t13.mkv"]="Schoolhouse Rock - S08E15 - Audio Commentary: The Preamble.mkv"
RENAME_MAP["DISC2/O9_t14.mkv"]="Schoolhouse Rock - S08E16 - Audio Commentary: Interjections.mkv"
RENAME_MAP["DISC2/O10_t15.mkv"]="Schoolhouse Rock - S08E17 - Audio Commentary: A Noun is a Person, Place or Things.mkv"
RENAME_MAP["DISC2/P1_t18.mkv"]="Schoolhouse Rock - S08E18 - Deluxx Folk Implosion: I'm Just a Bill.mkv"
RENAME_MAP["DISC2/P2_t19.mkv"]="Schoolhouse Rock - S08E19 - Better Than Ezra: Conjunction Junction.mkv"
RENAME_MAP["DISC2/P3_t20.mkv"]="Schoolhouse Rock - S08E20 - The Lemonheads: My Hero, Zero.mkv"
RENAME_MAP["DISC2/P4_t21.mkv"]="Schoolhouse Rock - S08E21 - Goodness: Electricity, Electricity.mkv"

UNMAPPED=(

)

echo "=== Mode: $MODE ==="
echo

for src in "${!RENAME_MAP[@]}"; do
  dst_name="${RENAME_MAP[$src]}"
  dst_dir="$(dirname "$src")"
  dst="$dst_dir/$dst_name"
  if [[ ! -f "$src" ]]; then
    echo "SKIP (not found): $src"
    continue
  fi
  if [[ "$MODE" == "apply" ]]; then
    mv -v -- "$src" "$dst"
  else
    echo "WOULD RENAME: $src  ->  $dst"
  fi
done

echo
echo "=== ${#UNMAPPED[@]} files not yet identified (left untouched): ==="
for f in "${UNMAPPED[@]}"; do
  [[ -f "$f" ]] && echo "  $f"
done