Skip to content

Instantly share code, notes, and snippets.

@keithga
Last active August 18, 2018 00:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save keithga/8c3631beb2064cc33844505d97a76eb7 to your computer and use it in GitHub Desktop.
Save keithga/8c3631beb2064cc33844505d97a76eb7 to your computer and use it in GitHub Desktop.
Export Microsoft Groove Playlists
<#
.SYNOPSIS
Export Groove Playlist
.DESCRIPTION
Export Groove Music playlist (tested on Groove Music version 9/25/2017)
Steps:
* Open Groove Music
* Click on "My Music"
* Select all tracks ( Ctrl-A )
* Click on "Download"
This should download encrypted (protected) music files locally.
You won't be able to downlaod these tracks, but you can now get a manifest of the tracks with this script.
.PARAMETER Name
Specifies the file name.
.PARAMETER Extension
Specifies the extension. "Txt" is the default.
.EXAMPLE
C:\PS> .\Export-GroovePlaylist.ps1
Will export your groove playlist to a formatted text file
.EXAMPLE
C:\PS> .\Export-GroovePlaylist.ps1 | export-csv -NoTypeInformation -Path $env:USERPROFILE\Desktop\myGrooveList.csv
Will export your groove playlist to a CSV (comma Seperated Value) file that can be opened in excel
.link
https://wordpress.com/post/keithga.wordpress.com/1456
#>
[cmdletbinding()]
param()
$path = "$env:userprofile\Music\Music Cache\Subscription Cache"
get-childitem -recurse $path -file |
foreach-object {
$Song = $_.FullName.replace("$path\",'').replace('.wma','') -split '\\'
if ( $Song[2] -match '^[0-9][0-9] ' ) {
[pscustomobject] @{ Artist = $Song[0]; Album = $Song[1]; Track = $song[2].Substring(0,2) -as [int]; Song = $Song[2].Substring(3) } | Write-Output
}
else {
[pscustomobject] @{ Artist = $Song[0]; Album = $Song[1]; Song = $Song[2] } | Write-Output
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment