generate.js: addTrackInfo base, add stronger, cbt, fu, diamondsword

This commit is contained in:
Jon 2022-12-26 09:13:49 +00:00
parent e6b00bb01b
commit b1413ec237

View File

@ -30,6 +30,7 @@ const notNullElse = (a, fallback) => a != null && a != undefined ? a : fallback
const RadioItem = function (id) {
this.id = id
this.metadata = undefined
this.info = undefined
this.tags = undefined
this.sources = []
return this
@ -57,6 +58,18 @@ RadioItem.prototype.setMetadata = function (title, artist, href, extra) {
return this
}
/**
* @public
* @params {RadioMetadata} metadata
* @returns {RadioItem}
*/
RadioItem.prototype.addTrackInfo = function (metadata) {
if (!this.info)
this.info = []
this.info.push(metadata)
return this
}
/**
* @public
* @params {string[]} tags
@ -99,12 +112,18 @@ RadioItem.prototype.setNiggadata = function (nigid, nigkey) {
* @deprecated
* @returns {Object}
*/
RadioItem.prototype.serialize = function () {
RadioItem.prototype.serialize = function (index) {
const self = this
return objSerialize(this, [
"id",
"tags",
"metadata"
], obj => ({ ...obj, "sources": this.sources.map(source => source.serialize()) }))
], obj => ({
index,
...obj,
"info": self.info?.length ? self.info.map(info => info.serialize()) : undefined,
"sources": self.sources.map(source => source.serialize())
}))
}
/**
@ -295,10 +314,115 @@ RadioPreview.prototype.serialize = function (radioSource) {
* @returns {RadioMetadata}
*/
const RadioMetadata = function (title, artist, href, extra) {
this.title = title
this.artist = artist
this.href = href
this.extra = extra
this.info = undefined
this.title = title || undefined
this.artist = artist || undefined
this.href = href || undefined
this.extra = extra || undefined
return this
}
/**
* @public
* @params {string} watch_id
* @returns {RadioMetadata}
*/
RadioMetadata.createYouTubeURI = id => `x-yt://${id}`
/**
* @public
* @params {string} id
* @returns {RadioMetadata}
*/
RadioMetadata.createNicoNicoURI = id => `x-nn://${id}`
/**
* @public
* @params {string} id
* @returns {RadioMetadata}
*/
RadioMetadata.createInternetArchiveURI = id => `x-ia://${id}`
/**
* @public
* @params {bigint|string} post_id
* @params {string} username
* @returns {RadioMetadata}
*/
RadioMetadata.createTikTokURI = (post_id, username) => `x-tt://${username}/${post_id}`
/**
* @public
* @params {string} track
* @params {string} artist
* @returns {RadioMetadata}
*/
RadioMetadata.createBandcampURI = (track, artist) => `x-bc://${artist}/${track}`
/**
* @public
* @params {string} track
* @params {string} artist
* @returns {RadioMetadata}
*/
RadioMetadata.createSoundcloudURI = (track, artist) => `x-sc://${artist}/${track}`
/**
* @public
* @params {number} post_id
* @returns {RadioMetadata}
*/
RadioMetadata.createBooruSoyURI = id => `x-bs://${id}`
/**
* @public
* @params {number} track_id
* @params {number|undefined} album_id
* @returns {RadioMetadata}
*/
RadioMetadata.createAppleMusicURI = (track_id, album_id) => `x-am://${track_id}${album_id ? '/' + album_id : ''}`
/**
* @public
* @params {string} id
* @returns {RadioMetadata}
*/
RadioMetadata.createWikipediaURI = id => `x-wp://${id}`
/**
* @public
* @params {number} string
* @returns {RadioMetadata}
*/
RadioMetadata.createWikimediaCommonsURI = id => `x-wc://${id}`
/**
* @public
* @readonly
*/
const BMetadataType = {
"AUDIO": 0b1,
"VIDEO": 0b10,
"ORIGINAL": 0b100,
"ALT": 0b1000,
"OFFICIAL": 0b10000
}
for (const key in BMetadataType) {
RadioMetadata.prototype[`b${key[0]}${key.slice(1).toLowerCase()}`] = function () {
this.info = (this.info || 0) | BMetadataType[key]
return this
}
}
/**
* Used to differentiate identical info bits for different info items
* @public
* @params {string} key
* @returns {RadioMetadata}
*/
RadioMetadata.prototype.setFor = function (key) {
this.for = key
return this
}
@ -312,6 +436,40 @@ const RadioMetadata = function (title, artist, href, extra) {
*/
RadioMetadata.new = (title, artist, href, extra) => new RadioMetadata(title, artist, href, extra)
/**
* Alias for new(...).bVideo().bAudio()
* @public
* @params {string|undefined} title
* @params {string|undefined} artist
* @params {URL|string|undefined} [href] href
* @params {string} [extra] extra Playback effects. i.e: Pitch, speed
* @returns {RadioMetadata}
*/
RadioMetadata.newLAV = (title, artist, href, extra) => (new RadioMetadata(title, artist, href, extra)).bVideo().bAudio()
/**
* Alias for new(...).bVideo()
* @public
* @params {string|undefined} title
* @params {string|undefined} artist
* @params {URL|string|undefined} [href] href
* @params {string} [extra] extra Playback effects. i.e: Pitch, speed
* @returns {RadioMetadata}
*/
RadioMetadata.newLV = (title, artist, href, extra) => (new RadioMetadata(title, artist, href, extra)).bVideo()
/**
* Alias for new(...).bAudio()
* @public
* @params {string|undefined} title
* @params {string|undefined} artist
* @params {URL|string|undefined} [href] href
* @params {string} [extra] extra Playback effects. i.e: Pitch, speed
* @returns {RadioMetadata}
*/
RadioMetadata.newLA = (title, artist, href, extra) => (new RadioMetadata(title, artist, href, extra)).bAudio()
/**
* @deprecated
* @params {RadioSource} radioSource
@ -319,6 +477,8 @@ RadioMetadata.new = (title, artist, href, extra) => new RadioMetadata(title, art
*/
RadioMetadata.prototype.serialize = function () {
return objSerialize(this, [
"info",
"for",
"title",
"artist",
"href",
@ -432,13 +592,18 @@ const mediaItems = [
.addPreview("mxc://glowers.club/FJfFhscJavurBvoEuRbykpmM", "image/jpg", "500x500")),
RadioItem.new("dobson")
.addTrackInfo(RadioMetadata.newLA("Without Me", "Eminem", RadioMetadata.createYouTubeURI("YVkUvmDQ3HY")).bOriginal().bOfficial())
.addTrackInfo(RadioMetadata.newLA(null, null, RadioMetadata.createAppleMusicURI(15477279)).bOriginal().bOfficial().bAlt())
.addSource(RadioSource.new("video/mp4", [ "avc1.64000D", "mp4a.40.2" ])
.setURI("mxc://glowers.club/mRtnfcoHYkyAOXSkYvrnbZgX")
.addPreview("mxc://glowers.club/eHKVfIITgdRKERhVOPSTDQAc", "image/jpg", "432x426")),
// FIXME: Original audio source found, not remix source or video source
RadioItem.new("poljacked")
.setMetadata("BLACK BLADE", "Seyit Akbas", "https://youtu.be/6RnNXLZ2rfw", "1.15%, pitched up")
//.setMetadata("BLACK BLADE", "Seyit Akbas", "https://youtu.be/6RnNXLZ2rfw", "1.15%, pitched up")
.addTrackInfo(RadioMetadata.newLV(null, null, RadioMetadata.createBooruSoyURI(23224)))
.addTrackInfo(RadioMetadata.newLA("NEON BLADE", "MoonDeity", RadioMetadata.createYouTubeURI("Mu965dWgMMQ"), "1.315%, pitched up, bass boosted").bOriginal().bOfficial())
.addTrackInfo(RadioMetadata.newLA(null, null, RadioMetadata.createAppleMusicURI(1627535463)).bOriginal().bOfficial().bAlt())
.addSource(RadioSource.new("video/mp4", [ "avc1.64001E", "mp4a.40.2" ])
.setURI("mxc://glowers.club/stlNnyEIUVGluyhpPSGhtjJg")
.addPreview("mxc://glowers.club/BczfFtojBhwMxTNjoZfhemam", "image/jpg", "638x360")
@ -469,7 +634,9 @@ const mediaItems = [
.addPreview("mxc://glowers.club/esDPBgpoTvTtqekHAQJRwqtK", "image/jpg", "480x272")),
RadioItem.new("ifuckinglovescience")
.setMetadata("I FUCKING LOVE SCIENCE", "Hank Green", "https://booru.soy/post/view/20571")
.addTrackInfo(RadioMetadata.newLV(null, null, RadioMetadata.createBooruSoyURI(20571)))
.addTrackInfo(RadioMetadata.newLA("I FUCKING LOVE SCIENCE", "Hank Green", RadioMetadata.createYouTubeURI("RECuQaaGGfA")).bOfficial())
.addTrackInfo(RadioMetadata.newLA(null, null, RadioMetadata.createAppleMusicURI(868150396)).bOfficial().bAlt())
.addSource(RadioSource.new("video/mp4", [ "avc1.4D4029", "mp4a.40.2" ])
.setURI("mxc://glowers.club/tLnDwRvJDckOIopncgUfodAn")
.addPreview("mxc://glowers.club/burAaUYSveyoVMHrijAsAxlL", "image/jpg", "768x432"))
@ -918,7 +1085,9 @@ const mediaItems = [
.addPreview("mxc://glowers.club/qnAjqhGYzBLrEmlhzbxreoUC", "image/jpg", "500x500")),
RadioItem.new("piebotnik")
.setMetadata("dr robotnik bakes a pie", "KnightOfGames", "https://youtu.be/jqKVLZ9wA24")
.addTrackInfo(RadioMetadata.newLAV("dr robotnik bakes a pie", "KnightOfGames", RadioMetadata.createYouTubeURI("jqKVLZ9wA24")).bOfficial())
.addTrackInfo(RadioMetadata.newLAV("In HoNoR oF oUr MoSt FuNnY tIkToK", "jaydencroes", RadioMetadata.createTikTokURI("6803451075920776454", "jaydencroes")).setFor(0).bOriginal().bOfficial())
.addTrackInfo(RadioMetadata.newLA("Dr. Robotnik's Theme", "中村正人", RadioMetadata.createYouTubeURI("KbhX7XKgkDU")).setFor(1).bOriginal())
.addTags([ "ylyl" ])
.addSource(RadioSource.new("video/mp4", [ "avc1.4D4028", "mp4a.40.2" ])
.setURI("mxc://glowers.club/YUjleEpsnUnjnQPscgAzVPzX")
@ -989,7 +1158,7 @@ const mediaItems = [
.addPreview("mxc://glowers.club/gGvSqctfUJWHEYxYfbZEwQpn", "image/jpg", "416x416")),
RadioItem.new("wiphop")
.setMetadata("[SP] WIP HOP", "CodeZombie", "https://soundcloud.com/codezombie/wip-hop")
.addTrackInfo(RadioMetadata.newLA("[SP] WIP HOP", "CodeZombie", RadioMetadata.createSoundcloudURI("wip-hop", "codezombie")).bOfficial())
.addTags([ "splash-song" ])
.addSource(RadioSource.new("audio/mp3", [ "mp3" ])
.setURI("mxc://glowers.club/CCsidQsdYksctdyCnlvfTDxx")
@ -1024,38 +1193,60 @@ const mediaItems = [
// TODO: album art edit sucks lol
RadioItem.new("partyrockapple")
.setMetadata("Party Rock Apple!!", "Triple-Q", "https://triple-q.bandcamp.com/track/party-rock-apple")
.addTrackInfo(RadioMetadata.newLA("Party Rock Apple!!", "Triple-Q", RadioMetadata.createBandcampURI("party-rock-apple", "triple-q")).bOfficial())
.addTrackInfo(RadioMetadata.newLA("Party Rock Anthem", "LMFAO", RadioMetadata.createYouTubeURI("KQ6zr6kCPj8")).setFor(0).bOriginal().bOfficial())
.addTrackInfo(RadioMetadata.newLA(null, null, RadioMetadata.createAppleMusicURI(1440636627)).setFor(0).bOriginal().bOfficial().bAlt())
.addTrackInfo(RadioMetadata.newLA("Bad Apple!!", "nomico", RadioMetadata.createNicoNicoURI("sm8628149")).setFor(1).bOriginal())
.addTrackInfo(RadioMetadata.newLA(null, null, RadioMetadata.createAppleMusicURI(1440636627)).setFor(1).bOriginal().bOfficial().bAlt())
.addSource(RadioSource.new("audio/mp3", [ "mp3" ])
.setURI("mxc://glowers.club/ngNYSFAkLNDIMwlGsnVmwDpS")
.addPreview("mxc://glowers.club/QemTpdTrUYfKEoaWgrkUChIz", "image/jpg", "500x500")),
RadioItem.new("fnaf")
.setMetadata("gangnam style joke", "Kirino Kōsaka", "https://soundcloud.com/kirinokosaka/gangnam-style-joke-1")
.addTrackInfo(RadioMetadata.newLA("gangnam style joke", "Kirino Kōsaka", RadioMetadata.createSoundcloudURI("gangnam-style-joke-1", "kirinokosaka")).bOfficial())
.addTrackInfo(RadioMetadata.newLA("Les Toreadors Carmen", "Scott Cawthon", RadioMetadata.createYouTubeURI("GZOOx40rE3k")).setFor(0).bOriginal())
.addTrackInfo(RadioMetadata.newLA("Gas Pedal (feat. Iamsu!)", "Sage The Gemini", RadioMetadata.createYouTubeURI("X8LUd51IuiA")).setFor(1).bOriginal().bOfficial())
.addTrackInfo(RadioMetadata.newLA(null, null, RadioMetadata.createAppleMusicURI(1434900852)).setFor(1).bOriginal().bOfficial().bAlt())
.addSource(RadioSource.new("audio/mp3", [ "mp3" ])
.setURI("mxc://glowers.club/bmzxkzwFHChruYIjszvDrdRj")
.addPreview("mxc://glowers.club/TkvoCbwQQQAwOzKwaFARDmRH", "image/jpg", "500x500")),
RadioItem.new("mail")
.setMetadata("AOLNATION - Mail", "Personal Pong", "https://soundcloud.com/personalpong/aolnation-mail")
.addTrackInfo(RadioMetadata.newLA("AOLNATION - Mail", "Personal Pong", RadioMetadata.createSoundcloudURI("aolnation-mail", "personalpong")).bOfficial())
.addTrackInfo(RadioMetadata.newLA("Sail", "AWOLNATION", RadioMetadata.createYouTubeURI("tgIqecROs5M")).bOriginal().bOfficial())
.addTrackInfo(RadioMetadata.newLA(null, null, RadioMetadata.createAppleMusicURI(422478211)).bOriginal().bOfficial().bAlt())
.addSource(RadioSource.new("audio/mp3", [ "mp3" ])
.setURI("mxc://glowers.club/HEDaNdMsVFzIgYDkymkxnhob")
.setPlaybackInfo(RadioPlaybackInfo.new().setPlaybackVolume(.4))
.addPreview("mxc://glowers.club/vBvnVioYcHeIGtvHRAaWWCab", "image/jpg", "500x500")),
RadioItem.new("thisislazytown")
.setMetadata("This Is Lazy Town", "Soundclown Crimes Against Humanity", "https://soundcloud.com/thesoundclowncriminal/this-is-lazy-town")
.addTrackInfo(RadioMetadata.newLA("This Is Lazy Town", "Soundclown Crimes Against Humanity", RadioMetadata.createSoundcloudURI("this-is-lazy-town", "thesoundclowncriminal")))
.addTrackInfo(RadioMetadata.newLA("We Are Number One", "Stefán Karl Stefánsson", RadioMetadata.createYouTubeURI("PfYnvDL0Qcw")).setFor(0).bOriginal().bOfficial())
.addTrackInfo(RadioMetadata.newLA(null, null, RadioMetadata.createAppleMusicURI(1650060971)).setFor(0).bOriginal().bOfficial().bAlt())
.addTrackInfo(RadioMetadata.newLA("This Is America", "Childish Gambino", RadioMetadata.createYouTubeURI("VYOjWnS4cMY")).setFor(1).bOriginal().bOfficial())
.addTrackInfo(RadioMetadata.newLA(null, null, RadioMetadata.createAppleMusicURI(1379046390)).setFor(1).bOriginal().bOfficial().bAlt())
.addSource(RadioSource.new("audio/mp3", [ "mp3" ])
.setURI("mxc://glowers.club/XKaBjJLglqeAgkkPgEclMBIS")
.addPreview("mxc://glowers.club/KcFqpISqthZSOFhntXAhkWIr", "image/jpg", "500x500")),
.setURI("mxc://glowers.club/XKaBjJLglqeAgkkPgEclMBIS")
.addPreview("mxc://glowers.club/KcFqpISqthZSOFhntXAhkWIr", "image/jpg", "500x500")),
// FIXME: No official source for Al-Sawarim. Artist listed on Apple Music but songs are unavailable in Europe
RadioItem.new("isisman")
.setMetadata("ISISman", "Triple-Q", "https://triple-q.bandcamp.com/track/isisman")
.addTrackInfo(RadioMetadata.newLA("ISISman", "Triple-Q", RadioMetadata.createBandcampURI("isisman", "triple-q")).bOfficial())
.addTrackInfo(RadioMetadata.newLA("Gentleman", "PSY", RadioMetadata.createYouTubeURI("ASO_zypdnsQ")).setFor(0).bOriginal().bOfficial())
.addTrackInfo(RadioMetadata.newLA(null, null, RadioMetadata.createAppleMusicURI(1452841625)).setFor(0).bOriginal().bOfficial().bAlt())
.addTrackInfo(RadioMetadata.newLA("Saleel al-Sawarim", "Abu Yasir", RadioMetadata.createInternetArchiveURI("saleel_al-sawarim")).setFor(1).bOriginal())
.addSource(RadioSource.new("audio/mp3", [ "mp3" ])
.setURI("mxc://glowers.club/pvVRMPsnBzCadKCSaZdMmluy")
.addPreview("mxc://glowers.club/zYqsUaZgAmqNDWymTPhdGJRi", "image/jpg", "500x500")),
RadioItem.new("takyonmachine")
.setMetadata("Wintergrips - Takyon Machine (music instrument using a very angry man)", "Uncle Ned", "https://youtu.be/gSQyPdYz4f4")
.addTrackInfo(RadioMetadata.newLAV("Wintergrips - Takyon Machine (music instrument using a very angry man)", "Uncle Ned", RadioMetadata.createYouTubeURI("gSQyPdYz4f4")).bOfficial())
.addTrackInfo(RadioMetadata.newLA("Marble Machine", "Wintergatan", RadioMetadata.createYouTubeURI("IvUU8joBb1Q")).setFor(0).bOriginal().bOfficial())
.addTrackInfo(RadioMetadata.newLA(null, null, RadioMetadata.createAppleMusicURI(1319433713)).setFor(0).bOriginal().bOfficial().bAlt())
.addTrackInfo(RadioMetadata.newLA("Takyon (Death Yon)", "Death Grips", RadioMetadata.createYouTubeURI("Htl3XWUhUOM")).setFor(1).bOriginal().bOfficial())
.addTrackInfo(RadioMetadata.newLA(null, null, RadioMetadata.createInternetArchiveURI("DeathGrips-ExMilitaryMixtape")).setFor(1).bOriginal().bOfficial().bAlt())
.addTags([ "metadata-prefer-id" ])
.addSource(RadioSource.new("video/mp4", [ "avc1.4D4029", "mp4a.40.2" ])
.setURI("mxc://glowers.club/khtMKBJAxrJgOQclpdzHDTzp")
@ -1065,7 +1256,10 @@ const mediaItems = [
.addPreview("mxc://glowers.club/VcwimKRasxlYLJMqYtJpOJGi", "image/jpg", "500x500")),
RadioItem.new("ghostpieght")
.setMetadata("Ghost Pieght", "uncrumpled", "https://youtu.be/SDQ-Vvdqa3s")
.addTrackInfo(RadioMetadata.newLAV("Ghost Pieght", "uncrumpled", RadioMetadata.createYouTubeURI("SDQ-Vvdqa3s")).bOfficial())
.addTrackInfo(RadioMetadata.newLAV("In HoNoR oF oUr MoSt FuNnY tIkToK", "jaydencroes", RadioMetadata.createTikTokURI("6803451075920776454", "jaydencroes")).setFor(0).bOriginal().bOfficial())
.addTrackInfo(RadioMetadata.newLA("Ghost Fight", "Toby Fox", RadioMetadata.createBandcampURI("ghost-fight-2", "tobyfox")).setFor(1).bOriginal().bOfficial())
.addTrackInfo(RadioMetadata.newLA(null, null, RadioMetadata.createAppleMusicURI(1119807147)).setFor(1).bOriginal().bOfficial().bAlt())
.addTags([ "ylyl" ])
.addSource(RadioSource.new("video/mp4", [ "avc1.4D4029", "mp4a.40.2" ])
.setURI("mxc://glowers.club/bVJrnYxFEUzZnebnClncWYxK")
@ -1075,18 +1269,65 @@ const mediaItems = [
.addPreview("mxc://glowers.club/OcyarqkcuWucgkXOGtcgpJAa", "image/jpg", "250x250")),
RadioItem.new("moonbase")
.setMetadata("MOONBASE BABY (ft. Hatsune Miku)", "KnightOfGames", "https://youtu.be/MIxowl5YuaQ")
.addTrackInfo(RadioMetadata.newLA("MOONBASE BABY (ft. Hatsune Miku)", "KnightOfGames", RadioMetadata.createYouTubeURI("MIxowl5YuaQ")).bOfficial())
.addTrackInfo(RadioMetadata.newLA("INDUSTRY BABY", "Lil Nas X", RadioMetadata.createYouTubeURI("UTHLKHL_whs")).bOriginal().bOfficial())
.addTrackInfo(RadioMetadata.newLA(null, null, RadioMetadata.createAppleMusicURI(1576552565)).bOriginal().bOfficial().bAlt())
.addSource(RadioSource.new("audio/mp3", [ "mp3" ])
.setURI("mxc://glowers.club/AybVVfwhrAOCWTkGtMeIxkdB")
.addPreview("mxc://glowers.club/NuOKRVCYsxywWAsmRdoSVJfX", "image/jpg", "500x500")),
RadioItem.new("blsdm")
.setMetadata("Black Lives (Still Don't) Matter", "Moonman")
.addTrackInfo(RadioMetadata.newLA("Black Lives (Still Don't) Matter", "Moonman"))
.addSource(RadioSource.new("audio/mp3", [ "mp3" ])
.setURI("mxc://glowers.club/GfcCntGLSZsYkkzzkaoJrUWx")
.addPreview("mxc://glowers.club/yyWJVkClXhWIFqgayFFtZZDJ", "image/jpg", "500x500")),
].filter(Boolean).map(a => a.serialize()).sort((a,b) => a.id.localeCompare(b.id))
RadioItem.new("stronger")
.addTrackInfo(RadioMetadata.newLA("♂ Stonebank - How strong you are ♂", "duyui", RadioMetadata.createYouTubeURI("MIxowl5YuaQ")).bOfficial())
.addTrackInfo(RadioMetadata.newLA("Stronger", "Stonebank", RadioMetadata.createYouTubeURI("I1NuCWfYeYc")).bOriginal().bOfficial())
.addTrackInfo(RadioMetadata.newLA(null, null, RadioMetadata.createAppleMusicURI(951790852)).bOriginal().bOfficial().bAlt())
.addTags([ "gachi" ])
.addSource(RadioSource.new("audio/mp3", [ "mp3" ])
.setURI("mxc://glowers.club/COBFDSucwknvESlGcXQthuMN")
.addPreview("mxc://glowers.club/QnxgSLfTrHUJLeqreUVmCQhO", "image/jpg", "500x500")),
RadioItem.new("cbt")
.addTrackInfo(RadioMetadata.newLA("unfinished/abandoned ytpmv projects 2 (feb 2020 - dec 2022)", "KnightOfGames", RadioMetadata.createYouTubeURI("d8FT7CpYMgQ"), "0:00 to 1:59").bOfficial())
.addTrackInfo(RadioMetadata.newLA("One-Winged Angel (Final Fantasy VII)", "Nobuo Uematsu", RadioMetadata.createYouTubeURI("zkZGFNCS6iQ")).setFor(0).bOriginal().bOfficial())
.addTrackInfo(RadioMetadata.newLA(null, null, RadioMetadata.createAppleMusicURI(1439125559)).setFor(0).bOriginal().bOfficial().bAlt())
.addTrackInfo(RadioMetadata.newLA("CocknBallTorture.ogg", "Alabaster Constantine III", RadioMetadata.createWikipediaURI("File:CocknBallTorture.ogg")).setFor(1).bOriginal().bOfficial())
.addTags([ "metadata-prefer-id" ])
.addSource(RadioSource.new("audio/mp3", [ "mp3" ])
.setURI("mxc://glowers.club/wkZaRVKkHqBCHpjYVQzKvsZs")
.addPreview("mxc://glowers.club/KgrZIZJKvEnWPWnDukTKaRqR", "image/jpg", "500x500")),
RadioItem.new("fu")
.addTrackInfo(RadioMetadata.newLAV("unfinished/abandoned ytpmv projects 2 (feb 2020 - dec 2022)", "KnightOfGames", RadioMetadata.createYouTubeURI("d8FT7CpYMgQ"), "3:07 to 3:27").bOfficial())
.addTrackInfo(RadioMetadata.newLAV("Darkwing Duck (Turbografx 16) - Angry Video Game Nerd (AVGN)", "Cinemassacre", RadioMetadata.createYouTubeURI("x3cewR_sMYI"), "10:40 to 10:54").setFor(0).bOriginal().bOfficial())
.addTrackInfo(RadioMetadata.newLA("Mtc", "S3RL", RadioMetadata.createYouTubeURI("bO-NaEj2dQ0")).setFor(1).bOriginal().bOfficial())
.addTrackInfo(RadioMetadata.newLA(null, null, RadioMetadata.createAppleMusicURI(500173662)).setFor(1).bOriginal().bOfficial().bAlt())
.addTags([ "metadata-prefer-id" ])
.addSource(RadioSource.new("video/mp4", [ "avc1.4D4029", "mp4a.40.2" ])
.setURI("mxc://glowers.club/BAGYQxmJGQdjKYnUfufHnvDc")
.addPreview("mxc://glowers.club/fBUMGKYdJHmjSvPkCLiWSAEG", "image/jpg", "800x450"))
.addSource(RadioSource.new("audio/mp3", [ "mp3" ])
.setURI("mxc://glowers.club/PRaJyCRuCnseFufeIlFeherJ")
.addPreview("mxc://glowers.club/skHzOJjiHKtFrzeBeVUZnsfh", "image/jpg", "500x500")),
RadioItem.new("diamondsword")
.addTrackInfo(RadioMetadata.newLAV("unfinished/abandoned ytpmv projects 2 (feb 2020 - dec 2022)", "KnightOfGames", RadioMetadata.createYouTubeURI("d8FT7CpYMgQ"), "3:30 to 3:57").bOfficial())
.addTrackInfo(RadioMetadata.newLAV("I Can Swing My Sword! (feat. Terabrite)", "Tobuscus", RadioMetadata.createYouTubeURI("eN7dYDYfvVg")).setFor(0).bOriginal().bOfficial())
.addTrackInfo(RadioMetadata.newLA(null, null, RadioMetadata.createAppleMusicURI(518379277)).setFor(0).bOriginal().bOfficial().bAlt())
.addTrackInfo(RadioMetadata.newLA("Track 26 (Plantation)", "天谷大輔", RadioMetadata.createYouTubeURI("aHtWKbR_P-c")).setFor(1).bOriginal())
.addTags([ "metadata-prefer-id" ])
.addSource(RadioSource.new("video/mp4", [ "avc1.4D4029", "mp4a.40.2" ])
.setURI("mxc://glowers.club/LpzkeoSVxfFBPYCcVIRawREk")
.addPreview("mxc://glowers.club/XBVPXnaargixijAaKLxFWKEc", "image/jpg", "800x454"))
.addSource(RadioSource.new("audio/mp3", [ "mp3" ])
.setURI("mxc://glowers.club/qsxMSogWbxDJOTpWetgcyqfs")
.addPreview("mxc://glowers.club/vmwNdqdALTzZlcZgpgXzoBmN", "image/jpg", "500x500")),
].filter(Boolean).map((a,i) => a.serialize(i)).sort((a,b) => a.id.localeCompare(b.id))
const lintCodecWarnings = {
"video/mp4": [
@ -1132,7 +1373,7 @@ for (const item of mediaItems) {
}
const radioObj = {
"version": 5,
"version": 6,
"songs": mediaItems
}