Authenticate automatically using environment variables

I’m pleased to announce a new version of scrobbler which introduces a slightly new way to authenticate download_scrobbles and update_scrobbles calls. This change is released on CRAN, so you can get the update by running


New authentication

In previous versions of scrobbler, whenever you wanted to download scrobbles you had to pass in your username and API key.

my_data <- download_scrobbles(username = "your_username", api_key = "your_api_key")

This quickly gets tiring (particularly with the API key), so I’m pleased to announce there is now a better way.

By default, the download_scrobbles and update_scrobbles functions will now search for environment variables named LASTFM_API_USERNAME and LASTFM_API_KEY, and automatically use their values. To set these values, simply run

Sys.setenv(LASTFM_API_USERNAME = "your_username")
Sys.setenv(LASTFM_API_KEY = "your_api_key")

Then all you need to do is run

my_data <- download_scrobbles()

As you can see, you no longer to authenticate directly in the function call, as it is handled automatically through the environment variables you set.

One important thing of note here, is that environment variables are not persisted across R sessions. So if you quit and start R again, you’d need to rerun the Sys.setenv code everytime. This doesn’t seem like we’ve gained much now right? Enter the .r_profile file!

.r_profile file

The .r_profile file is a hidden file that is run each time you start R. Since it is run by default, its a great way to store environment variables you always want available. We can get easy access to the .r_profile file through the usethis package.


This will open up your .r_profile file. Now all you need to do is add the code below into the file, and save it (it’s the exact same code we used above).

Sys.setenv(LASTFM_API_USERNAME = "your_username")
Sys.setenv(LASTFM_API_KEY = "your_api_key")

Once you’ve saved and closed your .r_profile file, and restarted R, you never need to worry about passing in authentication options again. Just run either download_scrobbles() or update_scrobbles() with no username or api_key arguments, and it should work automatically.

As always, if anything doesn’t work, or something isn’t clear, reach out on github.