Metadata-Version: 2.1
Name: syncify-music
Version: 0.1
Summary: Syncs spotify playlists with local json
Home-page: https://github.com/collinbarlage/syncify
Author: collin
Author-email: collinbarlage@gmail.com
License: CC0-1.0 license
Platform: UNKNOWN
Description-Content-Type: text/markdown

```
 _____             _ ___
|   __|_ _ ___ ___|_|  _|_ _
|__   | | |   |  _| |  _| | |
|_____|_  |_|_|___|_|_| |_  |
      |___|             |___|
```

Syncs spotify playlists -> local files

makes use of [spotify_to_ytmusic](https://github.com/linsomniac/spotify_to_ytmusic) and [yt-dlp](https://github.com/yt-dlp/yt-dlp)


### question:
- do i really need to oauth, or could we just use spotify urls ()

## directory context:
```
/syncify
  /rave
  /bounce
  syncify.json
    {
      oauth: "xyz",
      refresh_token: "abc",
      expires: 1234,
      last_synced: 1234,
      playlists:
        [
          bounce: {
            sync: true,
            url: "...",
            tracks: [
              title: "string"
              artist: "string"
              album: "string"
              length: "string"
              url_sp: "string"
              url_yt: "string"
              bitrate: 320.00
              downloaded: false
              error: false
            ]
          }
          rave: {}
        ]
    }
```


## sudo:

```
> syncify
if (!syncify.json) {
  > enter spotify oauth
}
if (syncify.playlists.length == 0) { // or > syncify --add
  > enter playlust name (select from list / gui?)
}


// sync
for each (playlist in syncify.json)
  use spotify_to_ytmusic to make/update map.json, which is a map of the spotify track -> yturl

  this map will also include a parameter 'downloaded'

// download
for each (playlist in syncify.json)
  for each (track in playlist)
    if (!downloaded)
      downlaod track with yt_dl

```

## possible commands:
```
syncify --help
  syncify --add
    > enter playlist url:
  syncify --only
    // just syncs doesn't download
  syncify --download
    // just downloads doesn't sync
  syncify --fix "song filename" "correct url"
    // deletes song, sets download: false, and updates new url_yt
  syncify
```


fixing errors woukd entail manually updating json file (changing url, setting downloaded: false)



## nice to haves:
- spotify specific metadata (added on)
- warning when mapping (top three results seem dodgy)
- warning when bitrate < 120
- deletions
- refresh_token
- backup file (.syncify__mmddyyyy.json)
- just use yt playlists

