# PowerShell script to create an M3U playlist from all MP3 files in a folder
# Usage: .\Create-M3U.ps1 "C:\Path\To\Music"

param (
    [Parameter(Mandatory = $true)]
    [string]$MusicFolder
)

# Ensure the folder exists
if (-not (Test-Path $MusicFolder)) {
    Write-Error "Folder '$MusicFolder' does not exist."
    exit
}

# Get folder name
$folderName = Split-Path $MusicFolder -Leaf

# Check if folder name is valid for a file
$invalidChars = [System.IO.Path]::GetInvalidFileNameChars()
if ($folderName.IndexOfAny($invalidChars) -ge 0) {
    Write-Host "Folder name '$folderName' contains invalid characters for a file name."
    $playlistName = Read-Host "Enter a valid name for the playlist"
} else {
    $playlistName = $folderName
}

# Build playlist path
$playlistPath = Join-Path $MusicFolder "$playlistName.m3u"

# Get all mp3 files
$mp3Files = Get-ChildItem -Path $MusicFolder -Filter *.mp3 | Sort-Object Name

# Build playlist lines
$playlist = @()
$playlist += "#EXTM3U"

foreach ($file in $mp3Files) {
    # Simple EXTINF line with 0 duration and filename
    $playlist += "#EXTINF:0,$($file.BaseName)"
    $playlist += $file.Name
}

# Save playlist
$playlist | Set-Content -Encoding UTF8 $playlistPath

Write-Output "Playlist created: $playlistPath"
Powered by Codespace