Task: Spotify Liked Songs Mirror

n8n workflow JSON:
{"id":"2","name":"Spotify Liked Playlist Sync","nodes":[{"name":"Cron","type":"n8n-nodes-base.cron","position":[550,360],"parameters":{"triggerTimes":{"item":[{"mode":"everyX","unit":"minutes","value":15}]}},"typeVersion":1},{"name":"Merge","type":"n8n-nodes-base.merge","position":[1150,260],"parameters":{"mode":"removeKeyMatches","propertyName1":"uri","propertyName2":"uri"},"typeVersion":1,"alwaysOutputData":false},{"name":"Extract URIs Original","type":"n8n-nodes-base.function","position":[950,260],"parameters":{"functionCode":"if (items.length == 1 && Object.keys(items[0].json).length == 0) {\n  return [];\n}\nreturn items.reverse().map(item => ({json: {uri: item.json.track.uri}}));\n"},"typeVersion":1,"alwaysOutputData":true},{"name":"Merge1","type":"n8n-nodes-base.merge","position":[1150,460],"parameters":{"mode":"removeKeyMatches","propertyName1":"uri","propertyName2":"uri"},"typeVersion":1,"alwaysOutputData":false},{"name":"Extract URIs Sync","type":"n8n-nodes-base.function","position":[950,460],"parameters":{"functionCode":"if (items.length == 1 && Object.keys(items[0].json).length == 0) {\n  return [];\n}\nreturn items.map(item => ({json: {uri: item.json.track.uri}}));\n"},"typeVersion":1,"alwaysOutputData":true},{"name":"Spotify Get Tracks Mirror","type":"n8n-nodes-base.spotify","maxTries":5,"position":[750,460],"parameters":{"id":"","resource":"playlist","operation":"getTracks","returnAll":true},"credentials":{"spotifyOAuth2Api":""},"retryOnFail":true,"typeVersion":1,"alwaysOutputData":true,"waitBetweenTries":5000},{"name":"Spotify Add Item Mirror","type":"n8n-nodes-base.spotify","maxTries":5,"position":[1350,260],"parameters":{"id":"","trackID":"={{$json.uri}}","resource":"playlist","additionalFields":{"position":0}},"credentials":{"spotifyOAuth2Api":""},"retryOnFail":true,"typeVersion":1,"waitBetweenTries":5000},{"name":"Spotify Remove Item Mirror","type":"n8n-nodes-base.spotify","maxTries":5,"position":[1350,460],"parameters":{"id":"","trackID":"={{$json.uri}}","resource":"playlist","operation":"delete"},"credentials":{"spotifyOAuth2Api":""},"retryOnFail":true,"typeVersion":1,"waitBetweenTries":5000},{"name":"Spotify Get Saved Tracks","type":"n8n-nodes-base.spotify","maxTries":5,"position":[750,260],"parameters":{"resource":"library","returnAll":true},"credentials":{"spotifyOAuth2Api":""},"retryOnFail":true,"typeVersion":1,"alwaysOutputData":true,"waitBetweenTries":5000}],"active":true,"settings":{},"connections":{"Cron":{"main":[[{"node":"Spotify Get Saved Tracks","type":"main","index":0},{"node":"Spotify Get Tracks Mirror","type":"main","index":0}]]},"Merge":{"main":[[{"node":"Spotify Add Item Mirror","type":"main","index":0}]]},"Merge1":{"main":[[{"node":"Spotify Remove Item Mirror","type":"main","index":0}]]},"Extract URIs Sync":{"main":[[{"node":"Merge","type":"main","index":1},{"node":"Merge1","type":"main","index":0}]]},"Extract URIs Original":{"main":[[{"node":"Merge","type":"main","index":0},{"node":"Merge1","type":"main","index":1}]]},"Spotify Get Saved Tracks":{"main":[[{"node":"Extract URIs Original","type":"main","index":0}]]},"Spotify Get Tracks Mirror":{"main":[[{"node":"Extract URIs Sync","type":"main","index":0}]]}}}