Skip to content

Instantly share code, notes, and snippets.

@alphaKAI
Created October 7, 2019 13:59
Show Gist options
  • Save alphaKAI/fea55be762b1c4ef54bc683f946ccd2d to your computer and use it in GitHub Desktop.
Save alphaKAI/fea55be762b1c4ef54bc683f946ccd2d to your computer and use it in GitHub Desktop.
An useful User Script for Apple Music beta (https://beta.music.apple.com)
// ==UserScript==
// @name AppleMusicTools
// @namespace https://alpha-kai-net.info
// @version 0.1
// @description Useful Apple Music User Script
// @author alphaKAI
// @match https://beta.music.apple.com/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
var AppleMusicTools = /** @class */ (function () {
function AppleMusicTools() {}
AppleMusicTools.getNowPlayingMusicInfo = function () {
var title = document.querySelector("#playback-name > div > div > span:nth-child(1) > span");
var _artistAndAlbum = document.querySelector("#playback-sub-copy > div > div > span:nth-child(1) > span");
var artistAndAlbum = (function () {
for (var i = 0; i < AppleMusicTools.seps.length; ++i) {
var sep = AppleMusicTools.seps[i];
var p = _artistAndAlbum.textContent.split(sep);
if (p[1] !== undefined) {
return p;
}
}
return undefined;
})();
var artworkSrc = document.querySelector("#ember22 > img");
var artworkUrl = (function () {
var srcs = artworkSrc.srcset.split(',');
return srcs[srcs.length - 1].slice(0, -4);
})();
return {
title: title.textContent.trim(),
artist: artistAndAlbum[0].trim(),
album: artistAndAlbum[1].trim(),
artworkUrl: artworkUrl
};
};
AppleMusicTools.tweetNowPlaying = function () {
var nowPlaying = AppleMusicTools.getNowPlayingMusicInfo();
var tweet_body = nowPlaying.title + " from " + nowPlaying.album + " (" + nowPlaying.artist + ")";
var baseUrl = 'https://twitter.com/intent/tweet?';
var text = ['text', tweet_body];
var hashtags = ['hashtags', ['NowPlaying'].join(',')];
var query = new URLSearchParams([text, hashtags]).toString();
var shareUrl = "" + baseUrl + query;
window.open(shareUrl, "_blank", "menubar=0,width=300,height=500,top=100,left=100");
};
AppleMusicTools.seps = [" — ", " — ", " - "];
return AppleMusicTools;
}());
window.addEventListener('load', function() {
function wait(time) {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve();
}, time);
});
}
wait(3000).then(() => {
let tweet_button = document.createElement("button");
tweet_button.textContent = "Tweet NowPlaying";
tweet_button.style.cssText = "margin-left: 20%;";
let nav_header = document.querySelector("#ember3 > div.web-navigation > nav > div.web-navigation__header");
tweet_button.addEventListener('click', function() { AppleMusicTools.tweetNowPlaying(); }, false);
nav_header.append(tweet_button);
let apple_music_player = document.querySelector("#apple-music-player");
apple_music_player = 0.1;
});
}, false);
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment