All Projects → erik → lastcast

erik / lastcast

Licence: MIT License
Scrobble music playing on Chromecast (from Spotify, Google Play, SoundCloud, ...) to last.fm and libre.fm

Programming Languages

python
139335 projects - #7 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to lastcast

descent
Elegant now playing display for Last.fm showing song metadata and local weather.
Stars: ✭ 97 (+32.88%)
Mutual labels:  lastfm
LyricsPyRobot
A Telegram bot for searching lyrics.
Stars: ✭ 29 (-60.27%)
Mutual labels:  lastfm
plumeria
🤖 A Discord chat bot with rich data piping between commands
Stars: ✭ 35 (-52.05%)
Mutual labels:  lastfm
AirConnect-Synology
Updated AirConnect packages for Synology NAS and Synology Router
Stars: ✭ 200 (+173.97%)
Mutual labels:  chromecast
Moosync
A simple music player capable of playing local audio or from Youtube or Spotify
Stars: ✭ 185 (+153.42%)
Mutual labels:  lastfm
vinyl-shelf-finder
app that manages a Discogs.com user records collection
Stars: ✭ 41 (-43.84%)
Mutual labels:  lastfm
lastfm
🎶 Last.fm API client for PHP. Comes with a Laravel service provider.
Stars: ✭ 17 (-76.71%)
Mutual labels:  lastfm
crabber
A Twitter clone written in Python + Flask with extended features and a focus on inclusivity.
Stars: ✭ 42 (-42.47%)
Mutual labels:  lastfm
Chromecast
Chromecast desktop app: Node.js, Electron, React & Material-UI.
Stars: ✭ 49 (-32.88%)
Mutual labels:  chromecast
LazyMan-iOS
A simple app that lets you stream every live and archived NHL and MLB game from any of your iOS devices.
Stars: ✭ 73 (+0%)
Mutual labels:  chromecast
mopidy-scrobbler
Mopidy extension for scrobbling played tracks to Last.fm
Stars: ✭ 60 (-17.81%)
Mutual labels:  lastfm
ioBroker.chromecast
ioBroker Chromecast Adapter
Stars: ✭ 17 (-76.71%)
Mutual labels:  chromecast
ccViewer
CryptCloudViewer source codes
Stars: ✭ 66 (-9.59%)
Mutual labels:  chromecast
MusaicFM
Screensaver inspired by Apple’s inbuilt iTunes Screensaver. It can display Artwork by Spotify or last.fm Profile Data.
Stars: ✭ 223 (+205.48%)
Mutual labels:  lastfm
lastfm
Portable .Net library for Last.fm
Stars: ✭ 87 (+19.18%)
Mutual labels:  lastfm
iTunes-Scrobbler
An alternative scrobbler for iTunes and Music on macOS 10.12 or higher
Stars: ✭ 19 (-73.97%)
Mutual labels:  lastfm
chromecast-mqtt-connector
Make your Chromecast devices discoverable and controllable via MQTT.
Stars: ✭ 40 (-45.21%)
Mutual labels:  chromecast
amplyfm
A free and open-source web app for streaming music.
Stars: ✭ 46 (-36.99%)
Mutual labels:  lastfm
scrobbler
A command-line Last.fm scrobbler and a now-playing status updater.
Stars: ✭ 22 (-69.86%)
Mutual labels:  lastfm
multi-scrobbler
Scrobble plays from multiple sources to multiple clients
Stars: ✭ 54 (-26.03%)
Mutual labels:  lastfm

lastcast

Scrobble music playing on Chromecast devices to last.fm and libre.fm.

By default, lastcast will scrobble music playing on Spotify, Google Play Music, SoundCloud, Plex, and YouTube Music but can be configured to scrobble any media player that supports Chromecast.

A Note for Spotify Users:

Last.fm now has first class support for Spotify, and you should probably use this rather than lastcast.

Python 3.5 and earlier are no longer supported as of lastcast 1.0.0.

If you need Python 2, please install lastcast==0.7.0.

Getting started

pip3 install lastcast

Set up an initial configuration with the configuration creation tool:

lastcast --wizard

If you'd prefer to set up the configuration manually, modify example.lastcast.toml from the repo and save it to ~/.lastcast.toml.

Once the configuration file is in place, just run lastcast to connect to the Chromecast and start scrobbling!

Linux / systemd instructions

  1. sudo pip3 install --upgrade lastcast
  2. lastcast --wizard
  3. Edit the code block below as needed (remember to fill in the config path!) and write to /usr/lib/systemd/system/lastcast.service (or /etc/systemd/system/lastcast.service if the directory doesn't exist)
  4. sudo systemctl daemon-reload
  5. sudo systemctl enable lastcast
[Unit]
Description=lastcast
Requires=networking.service
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/local/bin/lastcast --config [PATH TO lastcast.toml]
Restart=always
RestartSec=5
# Set this to run as your user rather than root!
User=pi

[Install]
WantedBy=multi-user.target

Linux / systemd troubleshooting

If your lastcast installation is not scrobbling check its log calling journalctl -f _COMM=lastcast

If you see the following error

RuntimeError: Click will abort further execution because Python 3 was
configured to use ASCII as encoding for the environment.

This system supports the C.UTF-8 locale which is recommended.
You might be able to resolve your issue by exporting the
following environment variables:

export LC_ALL=C.UTF-8
export LANG=C.UTF-8

modify the lastcast.service file you created in the previous section as by adding the following to the [Service] section

Environment="LC_ALL=C.UTF-8"
Environment="LANG=C.UTF-8"

Detailed macOS setup

(for anyone not familiar with Python and pip)

Enter the following commands in your Terminal (Terminal.app, iTerm2, etc.):

  1. brew install python3
  2. sudo pip3 install --upgrade lastcast
  3. lastcast --wizard

This will prompt you to create a last.fm API application and then ask for your login information, which will only be stored locally on your computer.

You may get an error on step 2 about cc missing. If this is the case, install xcode by running xcode-select --install and retry step 2.

Now everything should be set up. When you want to start scrobbling, simply run lastcast in the terminal.

Docker setup

lastcast uses a Docker volume in order to link the configuration file into the container.

# Path to configuration file. Make sure to use an absolute path.
export CONFIG_PATH=/path/to/your/lastcast.toml

docker pull rkprc/lastcast

docker run -it                   \
  --net=host                     \
  --name lastcast                \
  -v $CONFIG_PATH:/lastcast.toml \
  rkprc/lastcast

# If you need to generate a config file, run the wizard:
docker run -it                   \
  --net=host                     \
  -v $CONFIG_PATH:/lastcast.toml \
  rkprc/lastcast                 \
  lastcast --wizard

No Chromecast devices found?

It is possible that an incompatible version of netifaces will prevent lastcast from finding any Chromecast devices on your network. This is known to affect Windows 10 with netifaces==0.10.5 installed.

The fix, as described in this StackOverflow answer is simply to uninstall the wrong version and manually install netifaces==0.10.4.

$ pip uninstall netifaces
$ pip install netifaces==0.10.4

If you still can't discover any Chromecasts, please open an issue.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].