mirror of
https://github.com/M4X809/list-of-lp.git
synced 2025-12-25 11:12:48 +00:00
Update track IDs and add FontAwesome dependencies
- Changed track IDs in fetched-songs.json and song-links.json from hyphenated to underscore format for consistency. - Added FontAwesome dependencies to package.json for icon support. - Introduced a new function in fetch-song-links.ts to retrieve song links by ID. - Refactored TrackCard component to utilize the new hash functionality for track modals. - Updated layout.tsx to include FontAwesome styles and configuration.
This commit is contained in:
parent
7df7c86ce3
commit
b93b0c2160
12 changed files with 411 additions and 169 deletions
3
.vscode/settings.json
vendored
Normal file
3
.vscode/settings.json
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"cSpell.words": ["emily"]
|
||||
}
|
||||
|
|
@ -1,39 +1,39 @@
|
|||
{
|
||||
"hybrid-theory-1": true,
|
||||
"hybrid-theory-2": true,
|
||||
"hybrid-theory-3": true,
|
||||
"hybrid-theory-4": true,
|
||||
"hybrid-theory-5": true,
|
||||
"hybrid-theory-6": true,
|
||||
"hybrid-theory-7": true,
|
||||
"hybrid-theory-8": true,
|
||||
"hybrid-theory-9": true,
|
||||
"hybrid-theory-10": true,
|
||||
"hybrid-theory-11": true,
|
||||
"hybrid-theory-12": true,
|
||||
"meteora-1": true,
|
||||
"meteora-2": true,
|
||||
"meteora-3": true,
|
||||
"meteora-4": true,
|
||||
"meteora-5": true,
|
||||
"meteora-6": true,
|
||||
"meteora-7": true,
|
||||
"meteora-8": true,
|
||||
"meteora-9": true,
|
||||
"meteora-10": true,
|
||||
"meteora-11": true,
|
||||
"meteora-12": true,
|
||||
"meteora-13": true,
|
||||
"minutes-to-midnight-1": true,
|
||||
"minutes-to-midnight-2": true,
|
||||
"minutes-to-midnight-3": true,
|
||||
"minutes-to-midnight-4": true,
|
||||
"minutes-to-midnight-5": true,
|
||||
"minutes-to-midnight-6": true,
|
||||
"minutes-to-midnight-7": true,
|
||||
"minutes-to-midnight-8": true,
|
||||
"minutes-to-midnight-9": true,
|
||||
"minutes-to-midnight-10": true,
|
||||
"minutes-to-midnight-11": true,
|
||||
"minutes-to-midnight-12": true
|
||||
"hybrid-theory_1": true,
|
||||
"hybrid-theory_2": true,
|
||||
"hybrid-theory_3": true,
|
||||
"hybrid-theory_4": true,
|
||||
"hybrid-theory_5": true,
|
||||
"hybrid-theory_6": true,
|
||||
"hybrid-theory_7": true,
|
||||
"hybrid-theory_8": true,
|
||||
"hybrid-theory_9": true,
|
||||
"hybrid-theory_10": true,
|
||||
"hybrid-theory_11": true,
|
||||
"hybrid-theory_12": true,
|
||||
"meteora_1": true,
|
||||
"meteora_2": true,
|
||||
"meteora_3": true,
|
||||
"meteora_4": true,
|
||||
"meteora_5": true,
|
||||
"meteora_6": true,
|
||||
"meteora_7": true,
|
||||
"meteora_8": true,
|
||||
"meteora_9": true,
|
||||
"meteora_10": true,
|
||||
"meteora_11": true,
|
||||
"meteora_12": true,
|
||||
"meteora_13": true,
|
||||
"minutes-to-midnight_1": true,
|
||||
"minutes-to-midnight_2": true,
|
||||
"minutes-to-midnight_3": true,
|
||||
"minutes-to-midnight_4": true,
|
||||
"minutes-to-midnight_5": true,
|
||||
"minutes-to-midnight_6": true,
|
||||
"minutes-to-midnight_7": true,
|
||||
"minutes-to-midnight_8": true,
|
||||
"minutes-to-midnight_9": true,
|
||||
"minutes-to-midnight_10": true,
|
||||
"minutes-to-midnight_11": true,
|
||||
"minutes-to-midnight_12": true
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,221 +1,221 @@
|
|||
{
|
||||
"hybrid-theory-1": {
|
||||
"hybrid-theory_1": {
|
||||
"spotify": "https://open.spotify.com/track/4HvcbAR8LisalXKt7cpqE1",
|
||||
"youtube": "https://www.youtube.com/watch?v=vjVkXlxsO8Q",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=vjVkXlxsO8Q",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/528436018?i=528436568&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"hybrid-theory-2": {
|
||||
"hybrid-theory_2": {
|
||||
"spotify": "https://open.spotify.com/track/4bYLTrlcqctyHck3fjhMgW",
|
||||
"youtube": "https://www.youtube.com/watch?v=4qlCC1GOwFw",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=4qlCC1GOwFw",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/590431776?i=590431778&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"hybrid-theory-3": {
|
||||
"hybrid-theory_3": {
|
||||
"spotify": "https://open.spotify.com/track/1Q9QN6dHEDeUegsySY012f",
|
||||
"youtube": "https://www.youtube.com/watch?v=M8UTS2iFXOo",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=M8UTS2iFXOo",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/528436018?i=528437421&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"hybrid-theory-4": {
|
||||
"hybrid-theory_4": {
|
||||
"spotify": "https://open.spotify.com/track/214LJVTqrkUOGemWDGHJpr",
|
||||
"youtube": "https://www.youtube.com/watch?v=jZSPAp8kCl4",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=jZSPAp8kCl4",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/590431776?i=590431781&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"hybrid-theory-5": {
|
||||
"hybrid-theory_5": {
|
||||
"spotify": "https://open.spotify.com/track/0X576XiCW9uEtko6f6VkcU",
|
||||
"youtube": "https://www.youtube.com/watch?v=Gd9OhYroLN0",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=Gd9OhYroLN0",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/591534774?i=591534780&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"hybrid-theory-6": {
|
||||
"hybrid-theory_6": {
|
||||
"spotify": "https://open.spotify.com/track/5tkHje8FGSF258gi869GcV",
|
||||
"youtube": "https://www.youtube.com/watch?v=ig-fyQqf510",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=ig-fyQqf510",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/528436018?i=528437609&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"hybrid-theory-7": {
|
||||
"hybrid-theory_7": {
|
||||
"spotify": "https://open.spotify.com/track/4SJoEhpI6C61wtUfxSHMGc",
|
||||
"youtube": "https://www.youtube.com/watch?v=wWBp-nlGX1o",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=wWBp-nlGX1o",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/528436018?i=528437611&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"hybrid-theory-8": {
|
||||
"hybrid-theory_8": {
|
||||
"spotify": "https://open.spotify.com/track/7q115ia4fQn9zonjpexWsY",
|
||||
"youtube": "https://www.youtube.com/watch?v=eVTXPUF4Oz4",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=eVTXPUF4Oz4",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/528436018?i=528437613&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"hybrid-theory-9": {
|
||||
"hybrid-theory_9": {
|
||||
"spotify": "https://open.spotify.com/track/1B8WdDScvobpFsZLfdmIE1",
|
||||
"youtube": "https://www.youtube.com/watch?v=3t2WkCudwfY",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=3t2WkCudwfY",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/528436018?i=528437708&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"hybrid-theory-10": {
|
||||
"hybrid-theory_10": {
|
||||
"spotify": "https://open.spotify.com/track/3JAu2BH8sSI46rJGzQerb6",
|
||||
"youtube": "https://www.youtube.com/watch?v=HNCgBuI2eJc",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=HNCgBuI2eJc",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/528436018?i=528437709&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"hybrid-theory-11": {
|
||||
"hybrid-theory_11": {
|
||||
"spotify": "https://open.spotify.com/track/15voDM9pGkwEvHBUecpcmo",
|
||||
"youtube": "https://www.youtube.com/watch?v=qqC5sdsHLq8",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=qqC5sdsHLq8",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/528436018?i=528437710&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"hybrid-theory-12": {
|
||||
"hybrid-theory_12": {
|
||||
"spotify": "https://open.spotify.com/track/4HlMOXxwF9SYG1RoJxEjio",
|
||||
"youtube": "https://www.youtube.com/watch?v=Ve1LNJEIKUE",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=Ve1LNJEIKUE",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/590431776?i=590431790&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"meteora-1": {
|
||||
"meteora_1": {
|
||||
"spotify": "https://open.spotify.com/track/4hbpxoMCp62bd1sdy7XehS",
|
||||
"youtube": "https://www.youtube.com/watch?v=U6R-twDkrcI",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=U6R-twDkrcI",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/590423275?i=590423280&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"meteora-2": {
|
||||
"meteora_2": {
|
||||
"spotify": "https://open.spotify.com/track/6HZdbb05lEXLvcmee3ZXO2",
|
||||
"youtube": "https://www.youtube.com/watch?v=oWfGOVWrueo",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=oWfGOVWrueo",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/1668484895?i=1668485277&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"meteora-3": {
|
||||
"meteora_3": {
|
||||
"spotify": "https://open.spotify.com/track/3agtg0x11wPvLIWkYR39nZ",
|
||||
"youtube": "https://www.youtube.com/watch?v=zsCD5XCu6CM",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=zsCD5XCu6CM",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/528435845?i=528437020&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"meteora-4": {
|
||||
"meteora_4": {
|
||||
"spotify": "https://open.spotify.com/track/4zP2e2aIzOZGEFTq1MDJmm",
|
||||
"youtube": "https://www.youtube.com/watch?v=NjdgcHdzvac",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=NjdgcHdzvac",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/590423275?i=590423283&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"meteora-5": {
|
||||
"meteora_5": {
|
||||
"spotify": "https://open.spotify.com/track/3R9NKZ4jmxNjOFihSF5s7f",
|
||||
"youtube": "https://www.youtube.com/watch?v=oMals9XXQY8",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=oMals9XXQY8",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/590423275?i=590423284&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"meteora-6": {
|
||||
"meteora_6": {
|
||||
"spotify": "https://open.spotify.com/track/17bgialGAwoiGj1STY4cnR",
|
||||
"youtube": "https://www.youtube.com/watch?v=U5zdmjVeQzE",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=U5zdmjVeQzE",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/590423275?i=590423285&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"meteora-7": {
|
||||
"meteora_7": {
|
||||
"spotify": "https://open.spotify.com/track/4Yf5bqU3NK4kNOypcrLYwU",
|
||||
"youtube": "https://www.youtube.com/watch?v=LYU-8IFcDPw",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=LYU-8IFcDPw",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/528435845?i=528437024&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"meteora-8": {
|
||||
"meteora_8": {
|
||||
"spotify": "https://open.spotify.com/track/2DrMcGNKEY0FZqjMovGaCm",
|
||||
"youtube": "https://www.youtube.com/watch?v=6dEAeCHQrBs",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=6dEAeCHQrBs",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/528435845?i=528437025&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"meteora-9": {
|
||||
"meteora_9": {
|
||||
"spotify": "https://open.spotify.com/track/6n8TMVyFKoUmDc4apxceRD",
|
||||
"youtube": "https://www.youtube.com/watch?v=v2H4l9RpkwM",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=v2H4l9RpkwM",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/528435845?i=528437026&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"meteora-10": {
|
||||
"meteora_10": {
|
||||
"spotify": "https://open.spotify.com/track/60IkVf7UfQXmt5CwkpcX8a",
|
||||
"youtube": "https://www.youtube.com/watch?v=YLHpvjrFpe0",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=YLHpvjrFpe0",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/528435845?i=528437027&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"meteora-11": {
|
||||
"meteora_11": {
|
||||
"spotify": "https://open.spotify.com/track/4m1P1BSg9nLxaWbvPhNdhw",
|
||||
"youtube": "https://www.youtube.com/watch?v=QJ87793QXes",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=QJ87793QXes",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/590423275?i=590423550&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"meteora-12": {
|
||||
"meteora_12": {
|
||||
"spotify": "https://open.spotify.com/track/3sbezh9MMCQrr4KY7zw13j",
|
||||
"youtube": "https://www.youtube.com/watch?v=J1KqQYsUYIk",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=J1KqQYsUYIk",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/528435845?i=528437513&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"meteora-13": {
|
||||
"meteora_13": {
|
||||
"spotify": "https://open.spotify.com/track/2nLtzopw4rPReszdYBJU6h",
|
||||
"youtube": "https://www.youtube.com/watch?v=kXYiU_JCYtU",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=kXYiU_JCYtU",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/528435845?i=528437514&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"minutes-to-midnight-1": {
|
||||
"minutes-to-midnight_1": {
|
||||
"spotify": "https://open.spotify.com/track/0GkuKdv0osuL9QhfnXqVNP",
|
||||
"youtube": "https://www.youtube.com/watch?v=Me7TJDHCELk",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=Me7TJDHCELk",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/590427297?i=590427304&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"minutes-to-midnight-2": {
|
||||
"minutes-to-midnight_2": {
|
||||
"spotify": "https://open.spotify.com/track/1fLlRApgzxWweF1JTf8yM5",
|
||||
"youtube": "https://www.youtube.com/watch?v=0xyxtzD54rM",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=0xyxtzD54rM",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/528975362?i=528975364&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"minutes-to-midnight-3": {
|
||||
"minutes-to-midnight_3": {
|
||||
"spotify": "https://open.spotify.com/track/0sp00HSXkQyqTa6QqM0O8V",
|
||||
"youtube": "https://www.youtube.com/watch?v=yZIummTz9mM",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=yZIummTz9mM",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/590427297?i=590427307&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"minutes-to-midnight-4": {
|
||||
"minutes-to-midnight_4": {
|
||||
"spotify": "https://open.spotify.com/track/0UFDKFqW2oGspYeYqo9wjA",
|
||||
"youtube": "https://www.youtube.com/watch?v=OnuuYcqhzCE",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=OnuuYcqhzCE",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/528975362?i=528975366&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"minutes-to-midnight-5": {
|
||||
"minutes-to-midnight_5": {
|
||||
"spotify": "https://open.spotify.com/track/0OYcEfskah1egYHjYRvbg1",
|
||||
"youtube": "https://www.youtube.com/watch?v=n1PCW0C1aiM",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=n1PCW0C1aiM",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/528975362?i=528975367&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"minutes-to-midnight-6": {
|
||||
"minutes-to-midnight_6": {
|
||||
"spotify": "https://open.spotify.com/track/18lR4BzEs7e3qzc0KVkTpU",
|
||||
"youtube": "https://www.youtube.com/watch?v=8sgycukafqQ",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=8sgycukafqQ",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/258416684?i=258416690&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"minutes-to-midnight-7": {
|
||||
"minutes-to-midnight_7": {
|
||||
"spotify": "https://open.spotify.com/track/0m7mTaFGMiKI3rBJpYknip",
|
||||
"youtube": "https://www.youtube.com/watch?v=gG4P3ayBzVY",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=gG4P3ayBzVY",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/528975362?i=528975409&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"minutes-to-midnight-8": {
|
||||
"minutes-to-midnight_8": {
|
||||
"spotify": "https://open.spotify.com/track/4CWhc9FaMMfBTt4ANjfbOf",
|
||||
"youtube": "https://www.youtube.com/watch?v=rW4uBvP2Dqc",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=rW4uBvP2Dqc",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/590427297?i=590427452&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"minutes-to-midnight-9": {
|
||||
"minutes-to-midnight_9": {
|
||||
"spotify": "https://open.spotify.com/track/2vfshZvISOKy2Je7wQBWOV",
|
||||
"youtube": "https://www.youtube.com/watch?v=KAFOpywZbMM",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=KAFOpywZbMM",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/528975362?i=528975411&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"minutes-to-midnight-10": {
|
||||
"minutes-to-midnight_10": {
|
||||
"spotify": "https://open.spotify.com/track/2ysXuQd8uOfSMZcMRR5Ux4",
|
||||
"youtube": "https://www.youtube.com/watch?v=YgVzhgygYfs",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=YgVzhgygYfs",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/528975362?i=528975412&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"minutes-to-midnight-11": {
|
||||
"minutes-to-midnight_11": {
|
||||
"spotify": "https://open.spotify.com/track/7jeI6EdY0elPSNz80mAKS8",
|
||||
"youtube": "https://www.youtube.com/watch?v=NaRBn6QIMcQ",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=NaRBn6QIMcQ",
|
||||
"appleMusic": "https://geo.music.apple.com/de/album/_/590427297?i=590427477&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m"
|
||||
},
|
||||
"minutes-to-midnight-12": {
|
||||
"minutes-to-midnight_12": {
|
||||
"spotify": "https://open.spotify.com/track/7jeI6EdY0elPSNz80mAKS8",
|
||||
"youtube": "https://www.youtube.com/watch?v=NaRBn6QIMcQ",
|
||||
"youtubeMusic": "https://music.youtube.com/watch?v=NaRBn6QIMcQ",
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
"fetch-links": "bun run scripts/fetch-song-links.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-svg-core": "^7.1.0",
|
||||
"@fortawesome/free-brands-svg-icons": "^7.1.0",
|
||||
"@fortawesome/react-fontawesome": "^3.1.0",
|
||||
"@mantine/carousel": "^8.3.5",
|
||||
"@mantine/core": "^8.3.5",
|
||||
"@mantine/hooks": "^8.3.5",
|
||||
|
|
|
|||
|
|
@ -102,6 +102,10 @@ export interface SongLinksData {
|
|||
[songId: string]: SongLinks;
|
||||
}
|
||||
|
||||
export function getSongLink(songId: string): SongLinks {
|
||||
return songLinks[songId];
|
||||
}
|
||||
|
||||
export const songLinks: SongLinksData = ${JSON.stringify(songLinks, null, 2)};
|
||||
`;
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import { Card, Group, Text, Badge, Box } from "@mantine/core";
|
|||
import { useState } from "react";
|
||||
import type { AlbumTheme } from "@/lib/themes";
|
||||
import type { Track } from "@/lib/ListTypes";
|
||||
import { useHash } from "@mantine/hooks";
|
||||
|
||||
interface TrackCardProps {
|
||||
track: Track;
|
||||
|
|
@ -13,9 +14,11 @@ interface TrackCardProps {
|
|||
|
||||
export default function TrackCard({ track, index, theme }: TrackCardProps) {
|
||||
const [isHovered, setIsHovered] = useState(false);
|
||||
const [_hash, setHash] = useHash();
|
||||
|
||||
return (
|
||||
<Card
|
||||
onClick={() => setHash(`trackModal_${track.id}`)}
|
||||
className="backdrop-blur-sm transition-all duration-300"
|
||||
style={{
|
||||
background: isHovered ? theme.card.backgroundHover : theme.card.background,
|
||||
|
|
@ -52,19 +55,6 @@ export default function TrackCard({ track, index, theme }: TrackCardProps) {
|
|||
</Group>
|
||||
|
||||
<Group gap="md">
|
||||
<Text
|
||||
size="sm"
|
||||
fw={500}
|
||||
style={{
|
||||
color: theme.text.muted,
|
||||
fontFamily: "monospace",
|
||||
background: theme.background.tertiary,
|
||||
padding: "4px 12px",
|
||||
borderRadius: "6px",
|
||||
}}
|
||||
>
|
||||
{track.duration}
|
||||
</Text>
|
||||
<Group gap="xs">
|
||||
{track.studioUrl && (
|
||||
<Badge
|
||||
|
|
@ -103,6 +93,19 @@ export default function TrackCard({ track, index, theme }: TrackCardProps) {
|
|||
</Badge>
|
||||
)}
|
||||
</Group>
|
||||
<Text
|
||||
size="sm"
|
||||
fw={500}
|
||||
style={{
|
||||
color: theme.text.muted,
|
||||
fontFamily: "monospace",
|
||||
background: theme.background.tertiary,
|
||||
padding: "4px 12px",
|
||||
borderRadius: "6px",
|
||||
}}
|
||||
>
|
||||
{track.duration}
|
||||
</Text>
|
||||
</Group>
|
||||
</Group>
|
||||
</Card>
|
||||
|
|
|
|||
199
src/Components/TrackModal.tsx
Normal file
199
src/Components/TrackModal.tsx
Normal file
|
|
@ -0,0 +1,199 @@
|
|||
"use client";
|
||||
import { albums } from "@/lib/list";
|
||||
import { getSongLink } from "@/lib/songLinks";
|
||||
import { getThemeColors } from "@/lib/themes";
|
||||
import { faApple, faSpotify, faYoutube, faYoutubeSquare, IconDefinition } from "@fortawesome/free-brands-svg-icons";
|
||||
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
||||
import {
|
||||
ActionIcon,
|
||||
Anchor,
|
||||
Box,
|
||||
Divider,
|
||||
Grid,
|
||||
GridCol,
|
||||
Group,
|
||||
Modal,
|
||||
Stack,
|
||||
Text,
|
||||
Title,
|
||||
Tooltip,
|
||||
} from "@mantine/core";
|
||||
import { useDisclosure, useHash } from "@mantine/hooks";
|
||||
import Link from "next/link";
|
||||
|
||||
export default function TrackModal() {
|
||||
const [hash, setHash] = useHash();
|
||||
console.log("🚀 ~ TrackModal.tsx:8 ~ TrackModal ~ hash:", hash);
|
||||
const close = () => {
|
||||
setHash("");
|
||||
};
|
||||
|
||||
const album = albums.find((album) => {
|
||||
return album.id === hash.split("_")[1];
|
||||
});
|
||||
const track = album?.tracks.find((track) => {
|
||||
return track.id === `${hash.split("_")[1]}_${hash.split("_")[2]}`;
|
||||
});
|
||||
|
||||
const songLink = getSongLink(track?.id || "");
|
||||
console.log("🚀 ~ TrackModal.tsx:25 ~ TrackModal ~ songLink:", songLink);
|
||||
|
||||
const theme = getThemeColors(album?.id || "");
|
||||
|
||||
return (
|
||||
<Modal
|
||||
opened={hash.startsWith("#trackModal_")}
|
||||
onClose={close}
|
||||
withCloseButton={false}
|
||||
styles={{
|
||||
// content: {
|
||||
// background: theme.background.gradient,
|
||||
// border: `2px solid ${theme.border.light}`,
|
||||
// boxShadow: "none",
|
||||
// },
|
||||
// header: {
|
||||
// background: theme.background.gradient,
|
||||
// border: `2px solid ${theme.border.light}`,
|
||||
// boxShadow: "none",
|
||||
// },
|
||||
body: {
|
||||
background: theme.background.gradient,
|
||||
// border: `2px solid ${theme.border.light}`,
|
||||
|
||||
boxShadow: "none",
|
||||
},
|
||||
}}
|
||||
>
|
||||
<Stack>
|
||||
<Title order={1}>{track?.label}</Title>
|
||||
<Divider size={"lg"} label={<Title order={3}>Studio Version</Title>} />
|
||||
<Grid columns={songLink && Object.keys(songLink).length > 0 ? Object.keys(songLink).length : 4}>
|
||||
{songLink &&
|
||||
Object.entries(songLink).map(([key, value]) => {
|
||||
let themeColor: {
|
||||
color: string;
|
||||
icon: IconDefinition;
|
||||
tooltip: string;
|
||||
};
|
||||
switch (key) {
|
||||
case "spotify":
|
||||
themeColor = {
|
||||
color: "#1ED760",
|
||||
icon: faSpotify,
|
||||
tooltip: "Spotify",
|
||||
};
|
||||
break;
|
||||
case "youtube":
|
||||
themeColor = {
|
||||
color: "#FF0000",
|
||||
icon: faYoutube,
|
||||
tooltip: "YouTube",
|
||||
};
|
||||
break;
|
||||
case "youtubeMusic":
|
||||
themeColor = {
|
||||
color: "#FF0000",
|
||||
icon: faYoutubeSquare,
|
||||
tooltip: "YouTube Music",
|
||||
};
|
||||
break;
|
||||
case "appleMusic":
|
||||
themeColor = {
|
||||
color: "#FF4E6B",
|
||||
icon: faApple,
|
||||
tooltip: "Apple Music",
|
||||
};
|
||||
break;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!themeColor) return null;
|
||||
|
||||
return (
|
||||
<GridCol
|
||||
span={1}
|
||||
key={`${track?.id}_${key}`}
|
||||
style={{ display: "flex", alignItems: "center", justifyContent: "center" }}
|
||||
>
|
||||
<Tooltip label={themeColor.tooltip}>
|
||||
<ActionIcon
|
||||
variant="filled"
|
||||
color={themeColor.color}
|
||||
size="lg"
|
||||
component={Link}
|
||||
href={value}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<FontAwesomeIcon icon={themeColor.icon} />
|
||||
</ActionIcon>
|
||||
</Tooltip>
|
||||
</GridCol>
|
||||
);
|
||||
})}
|
||||
</Grid>
|
||||
{Array.isArray(track?.emilyLive) && (
|
||||
<>
|
||||
<Divider size={"lg"} label={<Title order={3}>Fan Live Versions</Title>} />
|
||||
<Stack>
|
||||
{track.emilyLive.map((live, idx) => (
|
||||
<Box style={{ width: "100%" }} key={`emilyLive_${live.url}`}>
|
||||
<Group justify="space-between" align="center">
|
||||
<Box style={{ display: "flex", flexDirection: "column", gap: "4px" }}>
|
||||
<Text>By: {live.author}</Text>
|
||||
<Text>{live.location}</Text>
|
||||
<Text>
|
||||
{new Date(live.date).toLocaleDateString("en-US", { year: "numeric", month: "long", day: "numeric" })}
|
||||
</Text>
|
||||
</Box>
|
||||
<ActionIcon
|
||||
variant="filled"
|
||||
color={"#FF0000"}
|
||||
size="lg"
|
||||
component={Link}
|
||||
href={live.url}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<FontAwesomeIcon icon={faYoutube} />
|
||||
</ActionIcon>
|
||||
</Group>
|
||||
</Box>
|
||||
))}
|
||||
</Stack>
|
||||
</>
|
||||
)}
|
||||
|
||||
{track?.lpLive && (
|
||||
<>
|
||||
<Divider size={"lg"} label={<Title order={3}>Linkin Park Live Versions</Title>} />
|
||||
<Group justify="space-between" align="center">
|
||||
<Box style={{ display: "flex", flexDirection: "column", gap: "4px" }}>
|
||||
<Text>
|
||||
{new Date(track?.lpLive.date).toLocaleDateString("en-US", {
|
||||
year: "numeric",
|
||||
month: "long",
|
||||
day: "numeric",
|
||||
})}
|
||||
</Text>
|
||||
<Text>{track?.lpLive.location}</Text>
|
||||
</Box>
|
||||
<ActionIcon
|
||||
variant="filled"
|
||||
color={"#FF0000"}
|
||||
size="lg"
|
||||
component={Link}
|
||||
href={track?.lpLive.url}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<FontAwesomeIcon icon={faYoutube} />
|
||||
</ActionIcon>
|
||||
</Group>
|
||||
</>
|
||||
)}
|
||||
</Stack>
|
||||
</Modal>
|
||||
);
|
||||
}
|
||||
|
|
@ -4,6 +4,7 @@ import { albums } from "../../../lib/list";
|
|||
import BackButton from "../../../Components/BackButton";
|
||||
import { getThemeColors } from "@/lib/themes";
|
||||
import TrackCard from "@/Components/TrackCard";
|
||||
import TrackModal from "@/Components/TrackModal";
|
||||
|
||||
export function generateStaticParams() {
|
||||
return albums.map((album) => ({
|
||||
|
|
@ -45,6 +46,7 @@ export default async function AlbumDetail({ params }: { params: Promise<{ albumI
|
|||
viewTransitionName: `album-card-background-${album.id}`,
|
||||
}}
|
||||
>
|
||||
<TrackModal />
|
||||
<Container size="xl" className="py-12">
|
||||
{/* Back Button */}
|
||||
<BackButton theme={theme} />
|
||||
|
|
|
|||
|
|
@ -4,6 +4,10 @@ import { MantineProvider } from "@mantine/core";
|
|||
import { ViewTransitions } from "next-view-transitions";
|
||||
import { Nunito } from "next/font/google";
|
||||
|
||||
import { config } from "@fortawesome/fontawesome-svg-core";
|
||||
import "@fortawesome/fontawesome-svg-core/styles.css";
|
||||
config.autoAddCss = false;
|
||||
|
||||
const nunito = Nunito({
|
||||
subsets: ["latin"],
|
||||
weight: ["200", "300", "400", "500", "600", "700", "800", "900"],
|
||||
|
|
|
|||
|
|
@ -3,11 +3,14 @@ export type Track = {
|
|||
label: string;
|
||||
duration: string;
|
||||
studioUrl: string | null;
|
||||
emilyLive: null | {
|
||||
emilyLive:
|
||||
| null
|
||||
| {
|
||||
url: string;
|
||||
date: string;
|
||||
location: string;
|
||||
};
|
||||
author: string;
|
||||
}[];
|
||||
lpLive: null | {
|
||||
url: string;
|
||||
date: string;
|
||||
|
|
|
|||
|
|
@ -11,17 +11,34 @@ export const albums: Album[] = [
|
|||
"Hybrid Theory is the debut studio album by American rock band Linkin Park, released on October 24, 2000, by Warner Bros. Records. It was recorded at The Plant Studios in Sausalito, California, and produced by Don Gilmore. The album was a commercial success, reaching number one on the Billboard 200 chart and selling over 10 million copies in the United States alone.",
|
||||
tracks: [
|
||||
{
|
||||
id: "hybrid-theory-1",
|
||||
id: "hybrid-theory_1",
|
||||
label: "Papercut",
|
||||
duration: "03:04",
|
||||
studioUrl: null,
|
||||
emilyLive: null,
|
||||
lpLive: null,
|
||||
emilyLive: [
|
||||
{
|
||||
url: "https://youtu.be/miQ9Y5UW08g",
|
||||
date: "2025-04-26",
|
||||
location: "Austin, Texas, USA",
|
||||
author: "Erynn Halvorson",
|
||||
},
|
||||
{
|
||||
url: "https://youtu.be/miQ9Y5UW08dasdasdg",
|
||||
date: "2025-04-26",
|
||||
location: "Austin, Texas, USdasdsaA",
|
||||
author: "Erynn Halvorson",
|
||||
},
|
||||
],
|
||||
lpLive: {
|
||||
url: "https://www.youtube.com/watch?v=DOKcCl6iKaA",
|
||||
date: "2024-09-11",
|
||||
location: "Los Angeles, California, USA",
|
||||
},
|
||||
|
||||
__SPOTIFY_URL__: "https://open.spotify.com/track/4HvcbAR8LisalXKt7cpqE1?si=a736ed41b9e84ff9",
|
||||
},
|
||||
{
|
||||
id: "hybrid-theory-2",
|
||||
id: "hybrid-theory_2",
|
||||
label: "One Step Closer",
|
||||
duration: "02:35",
|
||||
studioUrl: null,
|
||||
|
|
@ -31,7 +48,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/4bYLTrlcqctyHck3fjhMgW?si=dd2c47138fed4c4c",
|
||||
},
|
||||
{
|
||||
id: "hybrid-theory-3",
|
||||
id: "hybrid-theory_3",
|
||||
label: "With You",
|
||||
duration: "03:23",
|
||||
studioUrl: null,
|
||||
|
|
@ -41,7 +58,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/1Q9QN6dHEDeUegsySY012f?si=d4a1aca393954caa",
|
||||
},
|
||||
{
|
||||
id: "hybrid-theory-4",
|
||||
id: "hybrid-theory_4",
|
||||
label: "Points of Authority",
|
||||
duration: "03:20",
|
||||
studioUrl: null,
|
||||
|
|
@ -51,7 +68,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/214LJVTqrkUOGemWDGHJpr?si=749f11d7cd9a4f56",
|
||||
},
|
||||
{
|
||||
id: "hybrid-theory-5",
|
||||
id: "hybrid-theory_5",
|
||||
label: "Crawling",
|
||||
duration: "03:29",
|
||||
studioUrl: null,
|
||||
|
|
@ -61,7 +78,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/0X576XiCW9uEtko6f6VkcU?si=0a47dc1d660b4c71",
|
||||
},
|
||||
{
|
||||
id: "hybrid-theory-6",
|
||||
id: "hybrid-theory_6",
|
||||
label: "Runaway",
|
||||
duration: "03:03",
|
||||
studioUrl: null,
|
||||
|
|
@ -71,7 +88,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/5tkHje8FGSF258gi869GcV?si=f69a7e1ebf0f4f31",
|
||||
},
|
||||
{
|
||||
id: "hybrid-theory-7",
|
||||
id: "hybrid-theory_7",
|
||||
label: "By Myself",
|
||||
duration: "03:09",
|
||||
studioUrl: null,
|
||||
|
|
@ -81,7 +98,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/4SJoEhpI6C61wtUfxSHMGc?si=4ca78fd74ae74d6f",
|
||||
},
|
||||
{
|
||||
id: "hybrid-theory-8",
|
||||
id: "hybrid-theory_8",
|
||||
label: "In the End",
|
||||
duration: "03:36",
|
||||
studioUrl: null,
|
||||
|
|
@ -91,7 +108,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/7q115ia4fQn9zonjpexWsY?si=1e4cb0fe76244b11",
|
||||
},
|
||||
{
|
||||
id: "hybrid-theory-9",
|
||||
id: "hybrid-theory_9",
|
||||
label: "A Place for My Head",
|
||||
duration: "03:04",
|
||||
studioUrl: null,
|
||||
|
|
@ -101,7 +118,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/1B8WdDScvobpFsZLfdmIE1?si=f1b5b6fe0abb4e23",
|
||||
},
|
||||
{
|
||||
id: "hybrid-theory-10",
|
||||
id: "hybrid-theory_10",
|
||||
label: "Forgotten",
|
||||
duration: "03:04",
|
||||
studioUrl: null,
|
||||
|
|
@ -111,7 +128,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/3JAu2BH8sSI46rJGzQerb6?si=92186e546f0049b9",
|
||||
},
|
||||
{
|
||||
id: "hybrid-theory-11",
|
||||
id: "hybrid-theory_11",
|
||||
label: "Cure for the Itch",
|
||||
duration: "02:37",
|
||||
studioUrl: null,
|
||||
|
|
@ -121,7 +138,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/15voDM9pGkwEvHBUecpcmo?si=0b50fb655a2e4649",
|
||||
},
|
||||
{
|
||||
id: "hybrid-theory-12",
|
||||
id: "hybrid-theory_12",
|
||||
label: "Pushing Me Away",
|
||||
duration: "03:11",
|
||||
studioUrl: null,
|
||||
|
|
@ -142,7 +159,7 @@ export const albums: Album[] = [
|
|||
"Meteora is the second studio album by American rock band Linkin Park, released on March 24, 2003, by Warner Bros. Records. It was recorded at The Plant Studios in Sausalito, California, and produced by Don Gilmore. The album was a commercial success, reaching number one on the Billboard 200 chart and selling over 10 million copies in the United States alone.",
|
||||
tracks: [
|
||||
{
|
||||
id: "meteora-1",
|
||||
id: "meteora_1",
|
||||
label: "Foreword",
|
||||
duration: "00:13",
|
||||
studioUrl: null,
|
||||
|
|
@ -152,7 +169,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/4hbpxoMCp62bd1sdy7XehS?si=0c4b2f93b36e43e7",
|
||||
},
|
||||
{
|
||||
id: "meteora-2",
|
||||
id: "meteora_2",
|
||||
label: "Don't Stay",
|
||||
duration: "03:07",
|
||||
studioUrl: null,
|
||||
|
|
@ -162,7 +179,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/6HZdbb05lEXLvcmee3ZXO2?si=b1f8362c72694a1b",
|
||||
},
|
||||
{
|
||||
id: "meteora-3",
|
||||
id: "meteora_3",
|
||||
label: "Somewhere I Belong",
|
||||
duration: "03:33",
|
||||
studioUrl: null,
|
||||
|
|
@ -172,7 +189,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/3agtg0x11wPvLIWkYR39nZ?si=e79dfe0143374cd9",
|
||||
},
|
||||
{
|
||||
id: "meteora-4",
|
||||
id: "meteora_4",
|
||||
label: "Lying from You",
|
||||
duration: "02:55",
|
||||
studioUrl: null,
|
||||
|
|
@ -182,7 +199,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/4zP2e2aIzOZGEFTq1MDJmm?si=a7951a3a01e740ac",
|
||||
},
|
||||
{
|
||||
id: "meteora-5",
|
||||
id: "meteora_5",
|
||||
label: "Hit the Floor",
|
||||
duration: "02:44",
|
||||
studioUrl: null,
|
||||
|
|
@ -192,7 +209,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/3R9NKZ4jmxNjOFihSF5s7f?si=3f07863add1e4e0f",
|
||||
},
|
||||
{
|
||||
id: "meteora-6",
|
||||
id: "meteora_6",
|
||||
label: "Easier to Run",
|
||||
duration: "03:24",
|
||||
studioUrl: null,
|
||||
|
|
@ -202,7 +219,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/17bgialGAwoiGj1STY4cnR?si=679a5b245d1d4610",
|
||||
},
|
||||
{
|
||||
id: "meteora-7",
|
||||
id: "meteora_7",
|
||||
label: "Faint",
|
||||
duration: "02:42",
|
||||
studioUrl: null,
|
||||
|
|
@ -212,7 +229,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/4Yf5bqU3NK4kNOypcrLYwU?si=cf2f7362cff04704",
|
||||
},
|
||||
{
|
||||
id: "meteora-8",
|
||||
id: "meteora_8",
|
||||
label: "Figure.09",
|
||||
duration: "03:17",
|
||||
studioUrl: null,
|
||||
|
|
@ -222,7 +239,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/2DrMcGNKEY0FZqjMovGaCm?si=583eb32931e84c48",
|
||||
},
|
||||
{
|
||||
id: "meteora-9",
|
||||
id: "meteora_9",
|
||||
label: "Breaking the Habit",
|
||||
duration: "03:16",
|
||||
studioUrl: null,
|
||||
|
|
@ -232,7 +249,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/6n8TMVyFKoUmDc4apxceRD?si=2b17f6b1906f46ec",
|
||||
},
|
||||
{
|
||||
id: "meteora-10",
|
||||
id: "meteora_10",
|
||||
label: "From the Inside",
|
||||
duration: "02:55",
|
||||
studioUrl: null,
|
||||
|
|
@ -242,7 +259,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/60IkVf7UfQXmt5CwkpcX8a?si=56ad75e64c174188",
|
||||
},
|
||||
{
|
||||
id: "meteora-11",
|
||||
id: "meteora_11",
|
||||
label: "Nobody's Listening",
|
||||
duration: "02:58",
|
||||
studioUrl: null,
|
||||
|
|
@ -252,7 +269,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/4m1P1BSg9nLxaWbvPhNdhw?si=9671f8d0299f429f",
|
||||
},
|
||||
{
|
||||
id: "meteora-12",
|
||||
id: "meteora_12",
|
||||
label: "Session",
|
||||
duration: "02:24",
|
||||
studioUrl: null,
|
||||
|
|
@ -262,7 +279,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/3sbezh9MMCQrr4KY7zw13j?si=62626db46f734d63",
|
||||
},
|
||||
{
|
||||
id: "meteora-13",
|
||||
id: "meteora_13",
|
||||
label: "Numb",
|
||||
duration: "03:05",
|
||||
studioUrl: null,
|
||||
|
|
@ -283,7 +300,7 @@ export const albums: Album[] = [
|
|||
"Minutes to Midnight is the third studio album by American rock band Linkin Park, released on May 14, 2007, by Warner Bros. Records. The album marked a departure from the band's previous nu-metal sound, incorporating more alternative rock and experimental elements.",
|
||||
tracks: [
|
||||
{
|
||||
id: "minutes-to-midnight-1",
|
||||
id: "minutes-to-midnight_1",
|
||||
label: "Wake",
|
||||
duration: "01:40",
|
||||
studioUrl: null,
|
||||
|
|
@ -293,7 +310,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/0GkuKdv0osuL9QhfnXqVNP?si=0491e2d35b0a4e12",
|
||||
},
|
||||
{
|
||||
id: "minutes-to-midnight-2",
|
||||
id: "minutes-to-midnight_2",
|
||||
label: "Given Up",
|
||||
duration: "03:09",
|
||||
studioUrl: null,
|
||||
|
|
@ -303,7 +320,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/1fLlRApgzxWweF1JTf8yM5?si=9b22e697bdd640e8",
|
||||
},
|
||||
{
|
||||
id: "minutes-to-midnight-3",
|
||||
id: "minutes-to-midnight_3",
|
||||
label: "Leave Out All the Rest",
|
||||
duration: "03:29",
|
||||
studioUrl: null,
|
||||
|
|
@ -313,7 +330,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/0sp00HSXkQyqTa6QqM0O8V?si=c9ad349e7f164919",
|
||||
},
|
||||
{
|
||||
id: "minutes-to-midnight-4",
|
||||
id: "minutes-to-midnight_4",
|
||||
label: "Bleed It Out",
|
||||
duration: "02:44",
|
||||
studioUrl: null,
|
||||
|
|
@ -323,7 +340,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/0UFDKFqW2oGspYeYqo9wjA?si=2f4e310a85674523",
|
||||
},
|
||||
{
|
||||
id: "minutes-to-midnight-5",
|
||||
id: "minutes-to-midnight_5",
|
||||
label: "Shadow of the Day",
|
||||
duration: "04:49",
|
||||
studioUrl: null,
|
||||
|
|
@ -333,7 +350,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/0OYcEfskah1egYHjYRvbg1?si=e7fe66722b7544d9",
|
||||
},
|
||||
{
|
||||
id: "minutes-to-midnight-6",
|
||||
id: "minutes-to-midnight_6",
|
||||
label: "What I've Done",
|
||||
duration: "03:25",
|
||||
studioUrl: null,
|
||||
|
|
@ -343,7 +360,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/18lR4BzEs7e3qzc0KVkTpU?si=f04a6e933aab4ba0",
|
||||
},
|
||||
{
|
||||
id: "minutes-to-midnight-7",
|
||||
id: "minutes-to-midnight_7",
|
||||
label: "Hands Held High",
|
||||
duration: "03:53",
|
||||
studioUrl: null,
|
||||
|
|
@ -353,7 +370,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/0m7mTaFGMiKI3rBJpYknip?si=e382b6252c7c427a",
|
||||
},
|
||||
{
|
||||
id: "minutes-to-midnight-8",
|
||||
id: "minutes-to-midnight_8",
|
||||
label: "No More Sorrow",
|
||||
duration: "03:41",
|
||||
studioUrl: null,
|
||||
|
|
@ -363,7 +380,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/4CWhc9FaMMfBTt4ANjfbOf?si=dd3a00c6453c4737",
|
||||
},
|
||||
{
|
||||
id: "minutes-to-midnight-9",
|
||||
id: "minutes-to-midnight_9",
|
||||
label: "Valentine's Day",
|
||||
duration: "03:16",
|
||||
studioUrl: null,
|
||||
|
|
@ -373,7 +390,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/2vfshZvISOKy2Je7wQBWOV?si=51d75042da314fa4",
|
||||
},
|
||||
{
|
||||
id: "minutes-to-midnight-10",
|
||||
id: "minutes-to-midnight_10",
|
||||
label: "In Between",
|
||||
duration: "03:16",
|
||||
studioUrl: null,
|
||||
|
|
@ -383,7 +400,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/2ysXuQd8uOfSMZcMRR5Ux4?si=3ae5e92155874795",
|
||||
},
|
||||
{
|
||||
id: "minutes-to-midnight-11",
|
||||
id: "minutes-to-midnight_11",
|
||||
label: "In Pieces",
|
||||
duration: "03:38",
|
||||
studioUrl: null,
|
||||
|
|
@ -393,7 +410,7 @@ export const albums: Album[] = [
|
|||
__SPOTIFY_URL__: "https://open.spotify.com/track/7jeI6EdY0elPSNz80mAKS8?si=983410366a774f68",
|
||||
},
|
||||
{
|
||||
id: "minutes-to-midnight-12",
|
||||
id: "minutes-to-midnight_12",
|
||||
label: "The Little Things Give You Away",
|
||||
duration: "06:23",
|
||||
studioUrl: null,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// This file is auto-generated by scripts/fetch-song-links.ts
|
||||
// Do not edit manually
|
||||
// Last updated: 2025-10-24T23:43:29.142Z
|
||||
// Last updated: 2025-10-25T00:32:44.823Z
|
||||
// Run: bun run fetch-links
|
||||
|
||||
export interface SongLinks {
|
||||
|
|
@ -14,260 +14,264 @@ export interface SongLinksData {
|
|||
[songId: string]: SongLinks;
|
||||
}
|
||||
|
||||
export function getSongLink(songId: string): SongLinks {
|
||||
return songLinks[songId];
|
||||
}
|
||||
|
||||
export const songLinks: SongLinksData = {
|
||||
"hybrid-theory-1": {
|
||||
"hybrid-theory_1": {
|
||||
spotify: "https://open.spotify.com/track/4HvcbAR8LisalXKt7cpqE1",
|
||||
youtube: "https://www.youtube.com/watch?v=vjVkXlxsO8Q",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=vjVkXlxsO8Q",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/528436018?i=528436568&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"hybrid-theory-2": {
|
||||
"hybrid-theory_2": {
|
||||
spotify: "https://open.spotify.com/track/4bYLTrlcqctyHck3fjhMgW",
|
||||
youtube: "https://www.youtube.com/watch?v=4qlCC1GOwFw",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=4qlCC1GOwFw",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/590431776?i=590431778&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"hybrid-theory-3": {
|
||||
"hybrid-theory_3": {
|
||||
spotify: "https://open.spotify.com/track/1Q9QN6dHEDeUegsySY012f",
|
||||
youtube: "https://www.youtube.com/watch?v=M8UTS2iFXOo",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=M8UTS2iFXOo",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/528436018?i=528437421&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"hybrid-theory-4": {
|
||||
"hybrid-theory_4": {
|
||||
spotify: "https://open.spotify.com/track/214LJVTqrkUOGemWDGHJpr",
|
||||
youtube: "https://www.youtube.com/watch?v=jZSPAp8kCl4",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=jZSPAp8kCl4",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/590431776?i=590431781&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"hybrid-theory-5": {
|
||||
"hybrid-theory_5": {
|
||||
spotify: "https://open.spotify.com/track/0X576XiCW9uEtko6f6VkcU",
|
||||
youtube: "https://www.youtube.com/watch?v=Gd9OhYroLN0",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=Gd9OhYroLN0",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/591534774?i=591534780&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"hybrid-theory-6": {
|
||||
"hybrid-theory_6": {
|
||||
spotify: "https://open.spotify.com/track/5tkHje8FGSF258gi869GcV",
|
||||
youtube: "https://www.youtube.com/watch?v=ig-fyQqf510",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=ig-fyQqf510",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/528436018?i=528437609&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"hybrid-theory-7": {
|
||||
"hybrid-theory_7": {
|
||||
spotify: "https://open.spotify.com/track/4SJoEhpI6C61wtUfxSHMGc",
|
||||
youtube: "https://www.youtube.com/watch?v=wWBp-nlGX1o",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=wWBp-nlGX1o",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/528436018?i=528437611&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"hybrid-theory-8": {
|
||||
"hybrid-theory_8": {
|
||||
spotify: "https://open.spotify.com/track/7q115ia4fQn9zonjpexWsY",
|
||||
youtube: "https://www.youtube.com/watch?v=eVTXPUF4Oz4",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=eVTXPUF4Oz4",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/528436018?i=528437613&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"hybrid-theory-9": {
|
||||
"hybrid-theory_9": {
|
||||
spotify: "https://open.spotify.com/track/1B8WdDScvobpFsZLfdmIE1",
|
||||
youtube: "https://www.youtube.com/watch?v=3t2WkCudwfY",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=3t2WkCudwfY",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/528436018?i=528437708&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"hybrid-theory-10": {
|
||||
"hybrid-theory_10": {
|
||||
spotify: "https://open.spotify.com/track/3JAu2BH8sSI46rJGzQerb6",
|
||||
youtube: "https://www.youtube.com/watch?v=HNCgBuI2eJc",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=HNCgBuI2eJc",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/528436018?i=528437709&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"hybrid-theory-11": {
|
||||
"hybrid-theory_11": {
|
||||
spotify: "https://open.spotify.com/track/15voDM9pGkwEvHBUecpcmo",
|
||||
youtube: "https://www.youtube.com/watch?v=qqC5sdsHLq8",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=qqC5sdsHLq8",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/528436018?i=528437710&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"hybrid-theory-12": {
|
||||
"hybrid-theory_12": {
|
||||
spotify: "https://open.spotify.com/track/4HlMOXxwF9SYG1RoJxEjio",
|
||||
youtube: "https://www.youtube.com/watch?v=Ve1LNJEIKUE",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=Ve1LNJEIKUE",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/590431776?i=590431790&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"meteora-1": {
|
||||
meteora_1: {
|
||||
spotify: "https://open.spotify.com/track/4hbpxoMCp62bd1sdy7XehS",
|
||||
youtube: "https://www.youtube.com/watch?v=U6R-twDkrcI",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=U6R-twDkrcI",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/590423275?i=590423280&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"meteora-2": {
|
||||
meteora_2: {
|
||||
spotify: "https://open.spotify.com/track/6HZdbb05lEXLvcmee3ZXO2",
|
||||
youtube: "https://www.youtube.com/watch?v=oWfGOVWrueo",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=oWfGOVWrueo",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/1668484895?i=1668485277&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"meteora-3": {
|
||||
meteora_3: {
|
||||
spotify: "https://open.spotify.com/track/3agtg0x11wPvLIWkYR39nZ",
|
||||
youtube: "https://www.youtube.com/watch?v=zsCD5XCu6CM",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=zsCD5XCu6CM",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/528435845?i=528437020&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"meteora-4": {
|
||||
meteora_4: {
|
||||
spotify: "https://open.spotify.com/track/4zP2e2aIzOZGEFTq1MDJmm",
|
||||
youtube: "https://www.youtube.com/watch?v=NjdgcHdzvac",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=NjdgcHdzvac",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/590423275?i=590423283&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"meteora-5": {
|
||||
meteora_5: {
|
||||
spotify: "https://open.spotify.com/track/3R9NKZ4jmxNjOFihSF5s7f",
|
||||
youtube: "https://www.youtube.com/watch?v=oMals9XXQY8",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=oMals9XXQY8",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/590423275?i=590423284&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"meteora-6": {
|
||||
meteora_6: {
|
||||
spotify: "https://open.spotify.com/track/17bgialGAwoiGj1STY4cnR",
|
||||
youtube: "https://www.youtube.com/watch?v=U5zdmjVeQzE",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=U5zdmjVeQzE",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/590423275?i=590423285&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"meteora-7": {
|
||||
meteora_7: {
|
||||
spotify: "https://open.spotify.com/track/4Yf5bqU3NK4kNOypcrLYwU",
|
||||
youtube: "https://www.youtube.com/watch?v=LYU-8IFcDPw",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=LYU-8IFcDPw",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/528435845?i=528437024&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"meteora-8": {
|
||||
meteora_8: {
|
||||
spotify: "https://open.spotify.com/track/2DrMcGNKEY0FZqjMovGaCm",
|
||||
youtube: "https://www.youtube.com/watch?v=6dEAeCHQrBs",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=6dEAeCHQrBs",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/528435845?i=528437025&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"meteora-9": {
|
||||
meteora_9: {
|
||||
spotify: "https://open.spotify.com/track/6n8TMVyFKoUmDc4apxceRD",
|
||||
youtube: "https://www.youtube.com/watch?v=v2H4l9RpkwM",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=v2H4l9RpkwM",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/528435845?i=528437026&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"meteora-10": {
|
||||
meteora_10: {
|
||||
spotify: "https://open.spotify.com/track/60IkVf7UfQXmt5CwkpcX8a",
|
||||
youtube: "https://www.youtube.com/watch?v=YLHpvjrFpe0",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=YLHpvjrFpe0",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/528435845?i=528437027&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"meteora-11": {
|
||||
meteora_11: {
|
||||
spotify: "https://open.spotify.com/track/4m1P1BSg9nLxaWbvPhNdhw",
|
||||
youtube: "https://www.youtube.com/watch?v=QJ87793QXes",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=QJ87793QXes",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/590423275?i=590423550&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"meteora-12": {
|
||||
meteora_12: {
|
||||
spotify: "https://open.spotify.com/track/3sbezh9MMCQrr4KY7zw13j",
|
||||
youtube: "https://www.youtube.com/watch?v=J1KqQYsUYIk",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=J1KqQYsUYIk",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/528435845?i=528437513&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"meteora-13": {
|
||||
meteora_13: {
|
||||
spotify: "https://open.spotify.com/track/2nLtzopw4rPReszdYBJU6h",
|
||||
youtube: "https://www.youtube.com/watch?v=kXYiU_JCYtU",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=kXYiU_JCYtU",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/528435845?i=528437514&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"minutes-to-midnight-1": {
|
||||
"minutes-to-midnight_1": {
|
||||
spotify: "https://open.spotify.com/track/0GkuKdv0osuL9QhfnXqVNP",
|
||||
youtube: "https://www.youtube.com/watch?v=Me7TJDHCELk",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=Me7TJDHCELk",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/590427297?i=590427304&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"minutes-to-midnight-2": {
|
||||
"minutes-to-midnight_2": {
|
||||
spotify: "https://open.spotify.com/track/1fLlRApgzxWweF1JTf8yM5",
|
||||
youtube: "https://www.youtube.com/watch?v=0xyxtzD54rM",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=0xyxtzD54rM",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/528975362?i=528975364&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"minutes-to-midnight-3": {
|
||||
"minutes-to-midnight_3": {
|
||||
spotify: "https://open.spotify.com/track/0sp00HSXkQyqTa6QqM0O8V",
|
||||
youtube: "https://www.youtube.com/watch?v=yZIummTz9mM",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=yZIummTz9mM",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/590427297?i=590427307&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"minutes-to-midnight-4": {
|
||||
"minutes-to-midnight_4": {
|
||||
spotify: "https://open.spotify.com/track/0UFDKFqW2oGspYeYqo9wjA",
|
||||
youtube: "https://www.youtube.com/watch?v=OnuuYcqhzCE",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=OnuuYcqhzCE",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/528975362?i=528975366&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"minutes-to-midnight-5": {
|
||||
"minutes-to-midnight_5": {
|
||||
spotify: "https://open.spotify.com/track/0OYcEfskah1egYHjYRvbg1",
|
||||
youtube: "https://www.youtube.com/watch?v=n1PCW0C1aiM",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=n1PCW0C1aiM",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/528975362?i=528975367&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"minutes-to-midnight-6": {
|
||||
"minutes-to-midnight_6": {
|
||||
spotify: "https://open.spotify.com/track/18lR4BzEs7e3qzc0KVkTpU",
|
||||
youtube: "https://www.youtube.com/watch?v=8sgycukafqQ",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=8sgycukafqQ",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/258416684?i=258416690&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"minutes-to-midnight-7": {
|
||||
"minutes-to-midnight_7": {
|
||||
spotify: "https://open.spotify.com/track/0m7mTaFGMiKI3rBJpYknip",
|
||||
youtube: "https://www.youtube.com/watch?v=gG4P3ayBzVY",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=gG4P3ayBzVY",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/528975362?i=528975409&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"minutes-to-midnight-8": {
|
||||
"minutes-to-midnight_8": {
|
||||
spotify: "https://open.spotify.com/track/4CWhc9FaMMfBTt4ANjfbOf",
|
||||
youtube: "https://www.youtube.com/watch?v=rW4uBvP2Dqc",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=rW4uBvP2Dqc",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/590427297?i=590427452&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"minutes-to-midnight-9": {
|
||||
"minutes-to-midnight_9": {
|
||||
spotify: "https://open.spotify.com/track/2vfshZvISOKy2Je7wQBWOV",
|
||||
youtube: "https://www.youtube.com/watch?v=KAFOpywZbMM",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=KAFOpywZbMM",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/528975362?i=528975411&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"minutes-to-midnight-10": {
|
||||
"minutes-to-midnight_10": {
|
||||
spotify: "https://open.spotify.com/track/2ysXuQd8uOfSMZcMRR5Ux4",
|
||||
youtube: "https://www.youtube.com/watch?v=YgVzhgygYfs",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=YgVzhgygYfs",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/528975362?i=528975412&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"minutes-to-midnight-11": {
|
||||
"minutes-to-midnight_11": {
|
||||
spotify: "https://open.spotify.com/track/7jeI6EdY0elPSNz80mAKS8",
|
||||
youtube: "https://www.youtube.com/watch?v=NaRBn6QIMcQ",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=NaRBn6QIMcQ",
|
||||
appleMusic:
|
||||
"https://geo.music.apple.com/de/album/_/590427297?i=590427477&mt=1&app=music&ls=1&at=1000lHKX&ct=api_http&itscg=30200&itsct=odsl_m",
|
||||
},
|
||||
"minutes-to-midnight-12": {
|
||||
"minutes-to-midnight_12": {
|
||||
spotify: "https://open.spotify.com/track/7jeI6EdY0elPSNz80mAKS8",
|
||||
youtube: "https://www.youtube.com/watch?v=NaRBn6QIMcQ",
|
||||
youtubeMusic: "https://music.youtube.com/watch?v=NaRBn6QIMcQ",
|
||||
|
|
|
|||
Loading…
Reference in a new issue