#!/usr/bin/env python3 # sortashuffle.py # Shuffles shows but keeps episodes in order. # USAGE # 0. Copy this script to the playlist folder # 1. Modify the TARGET variable below # 2. Modify the SOURCES variable below # 3. Run the script as administrator # # To add/remove shows or regenerate playlist, # delete everything in TARGET (except this script) # and re-run the script. import os import random # Playlist destination folder TARGET = "" # Shows to include # MUST be in format "C://Dir1//Dir2" SOURCES = ["", ""] SHOWLIST = [[f for f in os.listdir(source)] for source in SOURCES] WEIGHTLIST = [len(show) for show in SHOWLIST] SHUFFLED = [] while any(SHOWLIST): selection = random.choices(range(len(SHOWLIST)), weights=WEIGHTLIST, k=1)[0] SHUFFLED.append(SOURCES[selection] + "//" + SHOWLIST[selection].pop(0)) WEIGHTLIST[selection] = len(SHOWLIST[selection]) count = 0 for episode in SHUFFLED: os.symlink(episode, TARGET + "//" + str(count)) count += 1 INDEX = open(TARGET + "//" + "_PLAYLIST_INDEX.txt", 'w') INDEX.write("\n".join(SHUFFLED)) INDEX.close()