# Path to the database file used to store recent import timestamps database = "scotty.sqlite3" # Host and port for OAuth authentication callbacks oauth-host = "127.0.0.1:2369" [service.listenbrainz] # This backend supports listens and loves from https://listenbrainz.org/ backend = "listenbrainz" # Your ListenBrainz username username = "" # Your ListenBrainz access token from https://listenbrainz.org/profile/ token = "" # If true, for each listen to submit it is checked whether this listen already # exists on ListenBrainz. For this similar listens are searched at the listen # time +/- the duration of the track. The default is false and this check is not # perfomed. Note that this verification significanly slows down the import and # is only recommended if you are importing historic listens which might or might # not already exists in your ListenBrainz profile. check-duplicate-listens = false [service.maloja] # Maloja is a self hosted listening service (https://github.com/krateng/maloja) backend = "maloja" # Base URL of your Maloja instance server-url = "https://maloja.example.com" # A Maloja API key token = "" # Set to true to disable Malojas auto correction of submitted listens nofix = false [service.funkwhale] # Funkwhale is a federated music server (https://www.funkwhale.audio/). # You need to register a new application in your Funkwhale settings. backend = "funkwhale" # Base URL of your Funkwhale instance server-url = "https://funkwhale.example.com" # Your Funkwhale username username = "" # The "access token" from the Funkwhale application settings token = "" [service.your-music-server] # The subsonic allows reading loves from any subsonic compatible music server. backend = "subsonic" # Base URL of your music server server-url = "https://example.com" # A valid username for logging into your server username = "" # Password for the username above token = "" [service.scrobbler-log] # Read or write listens from a Rockbox .scobbler.log file backend = "scrobbler-log" # The file path to the .scrobbler.log file. Relative paths are resolved against # the current working directory when running scotty. file-path = "./.scrobbler.log" # If true, reading listens from the file also returns listens marked as "skipped" include-skipped = true # If true (default), new listens will be appended to the existing file. Set to # false to overwrite the file and create a new scrobbler log on every run. append = true [service.jspf] # Write listens and loves to JSPF playlist files (https://xspf.org/jspf) backend = "jspf" # The file path to the JSPF file. Relative paths are resolved against # the current working directory when running scotty. file-path = "./playlist.jspf" # If true (default), new listens will be appended to the existing file. Set to # false to overwrite the file and create a new JSPF playlist on every run. append = true # Title of the playlist. Not used in append mode. title = "My Playlist" # Creator of the playlist (only informational). Not used in append mode. username = "" # A unique identifier for your playlist. Not used in append mode. identifier = "" [service.spotify] # Read listens and loves from a Spotify account backend = "spotify" # You need to register an application on https://developer.spotify.com/ # and set the client ID and client secret below. # When registering use "http://127.0.0.1:2369/callback/spotify" as the # callback URI and enable "Web API". client-id = "" client-secret = "" [service.spotify-history] # Read listens from a Spotify extended history export backend = "spotify-history" # Directory where the extended history JSON files are located. The files must # follow the naming scheme "Streaming_History_Audio_*.json". dir-path = "./my_spotify_data_extended/Spotify Extended Streaming History" # If true (default), ignore listens from a Spotify "private session". ignore-incognito = true # If true, ignore listens marked as skipped. Default is false. ignore-skipped = false # Only consider skipped listens with a playback duration longer than this number # of seconds. Default is 30 seconds. If ignore-skipped is set to false this # setting has no effect. ignore-min-duration-seconds = 30 [service.deezer] # Read listens and loves from a Deezer account backend = "deezer" # You need to register an application on https://developers.deezer.com/myapps # and set the client ID and client secret below. # When registering use "http://127.0.0.1:2369/callback/deezer" as the # callback URI. client-id = "" client-secret = "" [service.lastfm] backend = "lastfm" # Your Last.fm username username = "" # You need to register an application on https://www.last.fm/api/account/create # and set the API ID and shared secret below. # When registering use "http://127.0.0.1:2369/callback/lastfm" as the # callback URI. client-id = "" client-secret = "" [service.dump] # This backend allows writing listens and loves as console output. Useful for # debugging the export from other services. backend = "dump"