forked from jon/glowers-radio
generate.js: addTrackInfo base, add stronger, cbt, fu, diamondsword
This commit is contained in:
parent
e6b00bb01b
commit
b1413ec237
281
generate.js
281
generate.js
@ -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")),
|
||||
|
||||
// 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
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user