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:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<# | |
.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 | |
} | |
} |