Mopidy extension for playing music from YouTube Music
Install by running:
sudo python3 -m pip install Mopidy-YTMusic
See https://mopidy.com/ext/ytmusic/ for alternative installation methods.
By default Mopidy-YTMusic will connect to YouTube Music as a guest account. This has limited options. If you would like to connect to YouTube Music with your account (free or premium) you'll need to generate an auth.json file and configure Mopidy-YTMusic to use it.
To create an auth.json file run mopidy ytmusic setup
(or
sudo mopidyctl ytmusic setup
if you're running mopidy as a service, also see below) and
follow the instructions in the terminal. When you're done it will tell you what
config options you need to add to your Mopidy configuration file.
It should look something like this:
[ytmusic] auth_json = /path/to/auth.json
Authenticated users have access to their listening history, likes, playlists and uploaded music. Premium users have access to high quality audio streams and other premium content.
Annoyingly, those authentication credentials will expire from time to time.
Run mopidy ytmusic reauth
(or sudo mopidyctl ytmusic reauth
) to
paste in new headers and overwrite your existing auth.json file.
Then restart mopidy for the new credentials to go into effect.
Other configuration options are as follows:
auto_playlist_refresh
- time (in minutes) to refresh the Auto playlists. Default: 60. Set to 0 to disable auto playlists.youtube_player_refresh
- time (in minutes) to refresh the Youtube player url (used for decoding the signature). Default: 15playlist_item_limit
- Number of items to grab from playlists. This is not exact. Default: 100subscribed_artist_limit
- Number of subscriptions to list. Default: 100. Set to 0 to disable subscription list.enable_history
- Show Recently Played playlist. Default: yesenable_like_songs
- Show Liked Songs playlist. Default: yesenable_mood_genre
- Show Mood & Genre playlists from YouTube Music's Explore directory. Default: yesenable_scrobbling
- Mark tracks as played on YouTube Music after listening. Default: yesstream_preference
- Comma separated list of itags in the order of preference you want for stream. Default: "141, 251, 140, 250, 249"verify_track_url
- Verify that track url is valid before sending to mopidy. Default: yes. There should be no need to set this to no.Info on YouTube Music streams:
itag | Codec | Sample Rate | Bit Rate |
---|---|---|---|
141 [*] | AAC | 44.1kHz | ~260kbps |
251 | Opus | 48kHz | ~150kbps |
140 | AAC | 44.1kHz | ~132kbps |
250 | Opus | 48kHz | ~80kbps |
249 | Opus | 48kHz | ~64kbps |
[*] | Available to premium accounts only. |
Since the mopidy user will end up
trying to create the auth.json file, you'll likely want to specify the path as
/tmp
when you run sudo mopidyctl ytmusic setup
. Then you can
move the /tmp/auth.json
to /etc/mopidy
and add:
[ytmusic] auth_json = /etc/mopidy/auth.json
to your /etc/mopidy/mopidy.conf
file. To make reauthentication easier,
make sure the auth.json file is owned by the mopidy user by running
sudo chown mopidy /etc/mopidy/auth.json
.
poetry build
to create the build tarballdist/Mopidy-YTMusic-x.x.x.tar.gz
file is what you'll use to install.python3 -m pip install dist/Mopidy-YTMusic-x.x.x.tar.gz
to install or reinstall over an existing version.