# 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"