--- /dev/null
+#!/usr/bin/env python3
+
+import os
+import sys
+
+import mythlib
+
+def main():
+ config_xml = mythlib.get_config()
+ db_connection = mythlib.get_db_connection(config_xml)
+ recordings_dir = mythlib.get_recordings_dir(config_xml, db_connection)
+
+ basenames = set(fetch_all_basenames(db_connection))
+ orphan_filenames = list(find_orphan_filenames(recordings_dir, basenames))
+
+ if orphan_filenames:
+ print("# Orphaned files:")
+ print("\n".join("rm %s" % filename for filename in orphan_filenames))
+ print()
+
+def fetch_all_basenames(db_connection):
+ with db_connection.cursor() as cursor:
+ cursor.execute("SELECT basename FROM recorded")
+ for row in cursor:
+ yield row[0]
+
+def find_orphan_filenames(recordings_dir, basenames):
+ for filename in os.listdir(recordings_dir):
+ _, ext = os.path.splitext(filename)
+ if ext not in [".mpg", ".ts"]:
+ continue
+
+ if filename not in basenames:
+ yield "%s/%s" % (recordings_dir, filename)
+
+if __name__ == "__main__":
+ main()