Last active
August 18, 2018 00:14
-
-
Save keithga/8c3631beb2064cc33844505d97a76eb7 to your computer and use it in GitHub Desktop.
Export Microsoft Groove Playlists
This file contains hidden or 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 | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment