OK… I’m using Groove. Don’t know why I paid the annual subscription, perhaps I had grand plans to sync up my music lists to a single platform and decided to give it a chance. Oh well… Microsoft just killed it.
Anyways, I’ve been collecting some songs over the past couple of years, and before I forget what they are, I thought I would export the list, only to find out that Groove only supports exporting to Spotify, well I don’t know what music service I’m planning on moving to, but it *might* not be Spotify, so I need to figure out how to export my list now.
I tried getting an Groove Music API, key, but Microsoft shutdown the service, I also tried another online service, but they wanted to charge a monthly fee. I did figure out that I can download my playlist locally to my machine. The files will be DRM protected, but I can use the file names to generate a playlist. How? Powershell to the rescue!
IF you would like to create a list, open up a powershell.exe command prompt and run the following command (Single line):
iwr https://gist.githubusercontent.com/keithga/8c3631beb2064cc33844505d97a76eb7/raw/e8f138929fdc54a9edf4b6ab58c0962f3c0d5a96/Export-GroovePlaylist.ps1 | % Content | IEX | export-csv -NoTypeInformation -path $env:USERPROFILE\desktop\myGrooveList.csv
This command will download the powershell script from GitHub, execute, and export to a file called MyGrooveList.csv on your desktop. ( or replace desktop with downloads, whatever).
Then you can open the MyGrooveList.csv file in Excel and import later.
Here is the full script:
<# | |
.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 | |
} | |
} |