from pathlib import Path
from urllib.parse import quote

MOVIES = Path(r"C:\Media\Movies")
OUTPUT = Path(r"C:\Media\vod.m3u")

BASE_URL = "http://192.168.2.71:8080/Movies/"

VIDEO_TYPES = {
    ".mp4",
    ".mkv",
    ".m4v",
    ".avi",
    ".mov",
    ".webm"
}

movies = sorted(
    [
        f for f in MOVIES.rglob("*")
        if f.is_file() and f.suffix.lower() in VIDEO_TYPES
    ],
    key=lambda f: f.name.lower()
)

lines = ["#EXTM3U"]

for movie in movies:
    relative_path = movie.relative_to(MOVIES).as_posix()
    movie_url = BASE_URL + quote(relative_path)

    title = movie.stem
    title = title.replace("_", " ")
    title = title.replace(".", " ")
    title = " ".join(title.split())

    lines.append(
        f'#EXTINF:-1 group-title="Movies",{title}'
    )
    lines.append(movie_url)

OUTPUT.write_text(
    "\n".join(lines) + "\n",
    encoding="utf-8"
)

print(f"Created playlist with {len(movies)} movies.")
print(f"Saved to: {OUTPUT}")