August 11, 2022
In my excitement to get this up and running I went ahead and imported all the songs from a previous program, and now have over 1000 songs in our library. We've found it's actually been easier to add them in fresh each time rather than reformatting, so have about 100 new ones that we wish to keep along with about 1000 that we don't...
Is there a way to get into the database and bulk delete *most* of the songs but still keep the ones we've added recently? I've been doing this one by one but it's pretty painful...
August 11, 2022
In Presenter Settings > Library and Database, you can clear the entire music library, but we don't have a selective bulk deleter.
September 22, 2022
Thanks - I decided to write a script in Power Automate to delete them one by one in Planner.
December 14, 2023
I know this is a bit old now, but I'm in the exact same position - any chance you could share details of how you did this in Power Automate?
December 14, 2023
Hi Jack, how familiar are you with using Power Automate? I'm fairly novice but tinker until something works for me. I don't remember the detail 100% but do have the script in front of me.
I 'wrote' it by using the record feature to record my actions for one delete cycle, and then set that cycle of actions to loop.
Happy to share the script which you can copy and paste into Power Automate and then modify to suit.
December 14, 2023
Not sure how well this will come out in a post here, but here is the script. You would need to switch out the URL to something that matches you account. Should be obvious where when you paste into Power Automate.
LOOP LoopIndex FROM 1 TO 30 STEP 1
@@source: 'Recorder'
WebAutomation.LaunchChrome.AttachToChromeByUrl TabUrl: 'INSERT URL DISPLAYED WHEN SONGS PAGE IS OPEN IN PLANNING' AttachTimeout: 10 BrowserInstance=> Browser
@@source: 'Recorder'
WebAutomation.Click.Click BrowserInstance: Browser Control: appmask['Recording']['Div'] MouseClick: False
@@source: 'Recorder'
WebAutomation.Click.Click BrowserInstance: Browser Control: appmask['Recording']['Span'] MouseClick: False
@@source: 'Recorder'
WebAutomation.PressButton.PressButton BrowserInstance: Browser Control: appmask['Recording']['Button']
END
# [ControlRepository][PowerAutomateDesktop]
{
"ControlRepositorySymbols": [
{
"IgnoreImagesOnSerialization": false,
"Repository": "{\r\n \"Screens\": [\r\n {\r\n \"Controls\": [\r\n {\r\n \"AutomationProtocol\": null,\r\n \"ScreenShot\": null,\r\n \"ElementTypeName\": \"div\",\r\n \"InstanceId\": \"19ff2970-67e9-4685-9f1d-92169d4c8c8d\",\r\n \"Name\": \"Div\",\r\n \"SelectorCount\": 1,\r\n \"Selectors\": [\r\n {\r\n \"CustomSelector\": \"html > body > div:eq(1) > div:eq(0) > div > main > div > div > div > div:eq(1) > section:eq(0) > div > div:eq(0) > div:eq(2) > a:eq(0) > div > div > div\",\r\n \"Elements\": [],\r\n \"Ignore\": false,\r\n \"IsCustom\": true,\r\n \"IsWindowsInstance\": false,\r\n \"Name\": \"Selector\",\r\n \"Properties\": []\r\n }\r\n ],\r\n \"Tag\": \"div\",\r\n \"ScreenshotPath\": \"controlRepo-screenshots\\\\\\\\842d0c77-9d12-4153-af8a-b33ba84ee004.png\"\r\n },\r\n {\r\n \"AutomationProtocol\": null,\r\n \"ScreenShot\": \"iVBORw0KGgoAAAANSUhEUgAAAGYAAABRCAYAAAAgoNN3AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAATWSURBVHhe7ZvPaxtHFMf1Zxh6MtQIHywdklxUCqGlLQbjXFzQIbS4GJpDcxCkGERNDiEJdfHBOdg6lJpCfwSHFoUGRZDYkP50HYpNijFBdt1KaUJKIZTGP+KofLtvV6Mf41lpV15bT/Jb+LDenZ3Rm/fZ0YykdWjn2S4EfogYpogYpogYpogYpogYpogYpogYpogYpogYpogYpogYpogYpogYpogYpogYpogYpogYpogYpogYprREzG5uDcWbN+29qZwDrY6xJWKowwiF7L2pnAOtjlHEuCBiDOUcYCtme+cZ/vr7CTYePMJv+YeB8uTzq3anaW8q54DXGCk/lCfKlymPzeIqhl7s9weP8cefwfPP1Wt2p2lvKueAnxgpT5QvUx6bxVUM3QmmIIKg08QQlC9THpvFVQwNU1MAQdCJYihfpjw2i4hxoePEPP75F7sz9dhJfmB3mvamcg74iZH6zF4MBUodOkpQn2XEHBIdN2K8QJ1Rd5qpnAN+Y2Ql5tfVtRo+nEzhvffHyiQvjNeUq3oipjH7ElMtwQskiuodjJh5jPYMY3rZVOafthbz5VffIDXzhWfoeqpX2+lVTJ/uRXdPhXBsCCMT17GwZn5dMz7FbFxH4vQMlkxlFm0thqBke0XVMYkZzVbazN27i9kLQwi/eh4Zz3J8irkzgVgnizG9Zbmh6jQS41BAOvkKwqNZ5NS5/CrSl4dxLEIj6wQGzs3g27K4vWKWbkwgHovao7DvVBLT3xXs8yt0vv8EuiMv4fWBQYsryGjtz3W9aMdY+FTElMvL0F0duegkzeL2+Bs4OZbFSt45XpgarhKnibHqnrRGXPp+6XgxhXgkifRG6Th7Ht3aiKluX8U4/+alyo1RB3ZiaEI3SdBREz/hWczyDOIq2Xkr8VZiZ1ViifvXMNKjztWKyYxFkfjaGSEO6/jsTG/lnC5Ga1/F+GNXvPY1XWAnRl8iu0HXqTp+xXxyT/1du0hwUDKqxTht7r22F/GPV522dTFa+3NdL9gxznW9VhmFdThaYqrfyuzEWYsB/Zoye8UY21QYxVTar42xdE0d2lYMLZdVHW9iCpg9F0Xs8vfO8UYWicgQJhf16xTVYqyFw2gUA1PL2jVV6GK09tteDCXcJELHj5jc4jwmE4Po67dGS9VymSbn8Nsp3FYTer6AhZ+W3Sf/yDAm76yX6+cW72JBzRc0Gl+2Fgcu7asYH1o3XltO/vT5xCRCp9HnmMo8EMWx/neRmMpiqbT6KpNfR2bqLAaOO9eGY4N4a3weK3a5JsZi5VYKI6esZTG1S0vjdyaQUVKtxUB6bAh9VHbcOq+1r+aYH0Y+KrVfnw4Us7dNDviNkZ0Y05eXOurLTFVHxDRm32KaQcQ0RsS40HFi5BfMYAhcDAVKHTpKUJ9lxBwSbEeMPInpL8ZDexJTnl32HuOhPrssT/szfdr/IJH/j2mMiHFBxBjKOSBiDOUcEDGGcg4cSTHyf/6NaYkYoTEihikihikihikihikihikihikihikihikihikihikihikihikh+q1aaB5TUoMgtLW9A6F5DkpSCLLtaysW/7MSGbwcERPQRlLUCDIl2i8iJqDtebGIza3twEaOiAlwe7q5FdioETEBbv8+3SyPGlOyvbOL/wGlpKal1Ub8/AAAAABJRU5ErkJggg==\",\r\n \"ElementTypeName\": \"span\",\r\n \"InstanceId\": \"c8bdbcfc-bcc6-4647-89b5-b8efefc631fb\",\r\n \"Name\": \"Span\",\r\n \"SelectorCount\": 1,\r\n \"Selectors\": [\r\n {\r\n \"CustomSelector\": \"html > body > div:eq(1) > div:eq(0) > div > main > div > div > section > div:eq(1) > div > div > button:eq(1) > span\",\r\n \"Elements\": [],\r\n \"Ignore\": false,\r\n \"IsCustom\": true,\r\n \"IsWindowsInstance\": false,\r\n \"Name\": \"Selector\",\r\n \"Properties\": []\r\n }\r\n ],\r\n \"Tag\": \"span\",\r\n \"ScreenshotPath\": \"controlRepo-screenshots\\\\\\\\dc414474-825e-4538-8374-6230763d9ef6.png\"\r\n },\r\n {\r\n \"AutomationProtocol\": null,\r\n \"ScreenShot\": \"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\",\r\n \"ElementTypeName\": \"button\",\r\n \"InstanceId\": \"cf3db67d-3c5b-445f-843d-e23bedeae3e3\",\r\n \"Name\": \"Button\",\r\n \"SelectorCount\": 1,\r\n \"Selectors\": [\r\n {\r\n \"CustomSelector\": \"html > body > div:eq(2) > div:eq(0) > div > div > footer > button:eq(1)\",\r\n \"Elements\": [],\r\n \"Ignore\": false,\r\n \"IsCustom\": true,\r\n \"IsWindowsInstance\": false,\r\n \"Name\": \"Selector\",\r\n \"Properties\": []\r\n }\r\n ],\r\n \"Tag\": \"button\",\r\n \"ScreenshotPath\": \"controlRepo-screenshots\\\\\\\\90e40924-5763-4e9e-9352-a413280cb3ec.png\"\r\n }\r\n ],\r\n \"ScreenShot\": null,\r\n \"ElementTypeName\": \"Web Page\",\r\n \"InstanceId\": \"b0e6176f-c31a-4d63-acec-e0fbed8eb39f\",\r\n \"Name\": \"Recording\",\r\n \"SelectorCount\": 1,\r\n \"Selectors\": [\r\n {\r\n \"CustomSelector\": null,\r\n \"Elements\": [\r\n {\r\n \"Attributes\": [],\r\n \"CustomValue\": null,\r\n \"Ignore\": false,\r\n \"Name\": \"Web Page\",\r\n \"Tag\": \"domcontainer\"\r\n }\r\n ],\r\n \"Ignore\": false,\r\n \"IsCustom\": false,\r\n \"IsWindowsInstance\": false,\r\n \"Name\": \"Selector\",\r\n \"Properties\": []\r\n }\r\n ],\r\n \"Tag\": \"domcontainer\",\r\n \"ScreenshotPath\": \"controlRepo-screenshots\\\\\\\\a2d8fc9a-8be5-49a4-851e-f5aa50a18905.png\"\r\n }\r\n ],\r\n \"Version\": 1\r\n}",
"ImportMetadata": {
"DisplayName": "Computer",
"ConnectionString": "",
"Type": "Local",
"DesktopType": "local"
},
"Name": "appmask"
}
],
"ImageRepositorySymbol": {
"Repository": "{\r\n \"Folders\": [],\r\n \"Images\": [],\r\n \"Version\": 1\r\n}",
"ImportMetadata": {},
"Name": "imgrepo"
},
"ConnectionReferences": []
}
December 14, 2023
thanks for the quick reply - I'll take a look. I'm fairly comfortable with Power Automate so hopefully should be ok. Might be something to look at over the Christmas break :D
I'll let you know how I get on