The labels are now in the “view page source”. Just right click (if you have Windows, no idea how Apple computers work) on the Apple Music release page and go to “view page source” a new page will open up. Do a ctrl-f search on the page for “recordlabel” and it’s there. I’ve asked for a-tisket to be updated a couple of times to include this, but it still hasn’t been updated yet. Of course, if it has the same barcode as Spotify & Deezer, you can just use a-tisket to find the label as well. There is also a script that can grab all the info from the Apple Music page. It was on one of the forum pages, but I can’t find it. I modified it a little to help with my edits and it’ll save a ton of time for those who look for Apple Music info including barcodes, labels, etc. I wish I could find the original to give proper credit, I’ve added a few things to it that weren’t on it. Here ya go, it’ll save you time from having to do all that view page source stuff. After running it, look for a little black box in top left corner of the Apple Music page and click it, then the magic happens :-).
// @name Apple Music Barcodes/ISRCs
// @namespace applemusic.barcode.isrc
// @description Get Barcodes/ISRCs/etc. from Apple Music pages
// @version 0.6
// @grant none
// @include https://music.apple.com/*
// @grant none
// @run-at document-idle
// ==/UserScript==
function addSimple(content, node, parent) {
const elem = document.createElement(node)
elem.textContent = content
elem.style.userSelect = 'text'
parent.appendChild(elem)
return elem
}
function getDatums() {
try {
const music_info = JSON.parse(document.getElementById('shoebox-media-api-cache-amp-music').innerHTML)
const albums = []
for (const [key, value] of Object.entries(music_info).filter(([key]) => key.startsWith('\uF8FF.catalog.'))) {
const albumsData = JSON.parse(value)
for (const albumData of albumsData.d.filter((item) => item.type === 'albums')) {
const album = {
name: albumData.attributes.name,
artist: albumData.attributes.artistName,
label: albumData.attributes.recordLabel,
barcode: albumData.attributes.upc,
MfiT: albumData.attributes.isMasteredForItunes,
audio: albumData.attributes.audioTraits,
copyright: albumData.attributes.copyright,
tracks: [],
}
if (albumData.relationships.tracks) {
for (const track_data of albumData.relationships.tracks.data) {
const track = {
name: track_data.attributes.name,
artist: track_data.attributes.artistName,
composer: track_data.attributes.composerName,
disc: track_data.attributes.discNumber,
track: track_data.attributes.trackNumber,
isrc: track_data.attributes.isrc,
track_release_date: track_data.attributes.releaseDate
}
album.tracks.push(track)
}
}
albums.push(album)
}
}
if (albums.length === 0) {
throw new Error('no albums found')
}
const results = addSimple('', 'div', document.body)
results.style.position = 'absolute'
results.style.inset = '30px'
results.style.zIndex = 2147483647
results.style.background = 'white'
results.style.color = 'black'
results.style.overflow = 'auto'
results.style.padding = '4px'
for (const album of albums) {
addSimple(album.name, 'h1', results)
addSimple(album.artist, 'h2', results)
addSimple(`Label: ${album.label}`, 'p', results)
addSimple(`Barcode: ${album.barcode}`, 'p', results)
addSimple(`MfiT: ${album.MfiT}`, 'p', results)
addSimple(`Audio: ${album.audio}`, 'p', results)
addSimple(`Copyright: ${album.copyright}`, 'p', results)
const hasMultipleDiscs = album.tracks.some(t => t.disc !== 1)
const table = addSimple('', 'table', results)
table.style.width = '100%'
table.style.borderCollapse = 'separate'
table.style.borderSpacing = '2px'
table.setAttribute('border', '1')
const thead = addSimple('', 'thead', table)
thead.style.fontWeight = 'bold'
const tr = addSimple('', 'tr', thead)
const t1 = addSimple('Track', 'td', tr)
t1.style.background = 'white'
t1.style.position = 'sticky'
t1.style.top = 0
const t2 = addSimple('Title', 'td', tr)
t2.style.background = 'white'
t2.style.position = 'sticky'
t2.style.top = 0
const t3 = addSimple('Artist', 'td', tr)
t3.style.background = 'white'
t3.style.position = 'sticky'
t3.style.top = 0
const t4 = addSimple('Composer', 'td', tr)
t4.style.background = 'white'
t4.style.position = 'sticky'
t4.style.top = 0
const t5 = addSimple('ISRC', 'td', tr)
t5.style.background = 'white'
t5.style.position = 'sticky'
t5.style.top = 0
const t6 = addSimple('Release Date', 'td', tr)
t6.style.background = 'white'
t6.style.position = 'sticky'
t6.style.top = 0
const tbody = addSimple('', 'tbody', table)
for (const track of album.tracks) {
const tr = addSimple('', 'tr', tbody)
addSimple(hasMultipleDiscs ? `${track.disc}.${track.track}` : track.track, 'td', tr)
addSimple(track.name, 'td', tr)
addSimple(track.artist, 'td', tr)
addSimple(track.composer, 'td', tr)
addSimple(track.isrc, 'td', tr)
addSimple(track.track_release_date, 'td', tr)
}
}
const close = (e) => {
if (e.key === 'Escape') {
document.body.removeEventListener('keydown', close)
results.remove()
}
}
document.body.addEventListener('keydown', close)
} catch (e) {
alert(e)
}
}
const clickMe = addSimple('', 'div', document.body)
clickMe.style.position = 'absolute'
clickMe.style.width = '15px'
clickMe.style.height = '15px'
clickMe.style.top = 0
clickMe.style.left = 0
clickMe.style.background = 'green'
clickMe.style.cursor = 'pointer'
clickMe.style.zIndex = 2147483647
clickMe.addEventListener('click', getDatums)