diff --git a/Cargo.lock b/Cargo.lock index e6e4ffd..23c0936 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1387,6 +1387,12 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" +[[package]] +name = "downcast-rs" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "117240f60069e65410b3ae1bb213295bd828f707b5bec6596a1afc8793ce0cbc" + [[package]] name = "ecolor" version = "0.27.2" @@ -4933,7 +4939,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "056535ced7a150d45159d3a8dc30f91a2e2d588ca0b23f70e56033622b8016f6" dependencies = [ "cc", - "downcast-rs", + "downcast-rs 1.2.1", "rustix 0.38.39", "scoped-tls", "smallvec", @@ -5792,12 +5798,14 @@ dependencies = [ "anyhow", "camino", "dirs", + "downcast-rs 2.0.2", "eframe", "egui", "egui_extras", "lazy_static", "log", "rfd", + "url", "uuid", "xmpd-cache", "xmpd-cliargs", @@ -5840,6 +5848,7 @@ dependencies = [ "lazy_static", "serde", "toml 0.8.19", + "xmpd-cliargs", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 059d874..87cda49 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -48,3 +48,4 @@ toml = "0.8.19" rfd = "0.15.1" rodio = { version = "0.20.1", features = ["symphonia-all"] } image = "0.25.5" +downcast-rs = "2.0.2" diff --git a/manifest.json b/manifest.json index 4103103..947ebb0 100644 --- a/manifest.json +++ b/manifest.json @@ -1,1420 +1,1672 @@ { "songs": { - "03f406b5-d5e9-4d22-b9bc-d0b36354400a": { - "name": "Diskoteka is 90 hit", - "author": "Raim & Artur feat. Zhenis", - "url": "https://www.youtube.com/watch?v=GfBhxlNhrn0", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "d01635a4-1a28-4d86-a524-9876eb3094de": { - "name": "VAIKAI PO LELIJOM (REMIX)", - "author": "Unknown", - "url": "https://www.youtube.com/watch?v=k1amBbsAZuo", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "b0732ead-9a8c-4537-b98a-a4618d33959f": { - "name": "O Mazuti", - "author": "Depresinis, Jypas", - "url": "https://www.youtube.com/watch?v=4t_DPbe2r3M", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "017e1086-7ca7-4788-834d-5490e0cf8276": { - "name": "Mersas", - "author": "Tweaxx", - "url": "https://www.youtube.com/watch?v=7ljAzgALPdA", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "101166d0-1b7c-4d1c-b0ce-35b9a89b0822": { - "name": "Nes as tik vejas", - "author": "SEL", - "url": "https://youtu.be/acMG37IZ6z8", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "9e6095bb-8b05-40eb-b5d3-b6410ac65171": { - "name": "C'est Beau La Bourgeoisie", - "author": "Discobitch", - "url": "https://www.youtube.com/watch?v=RCeQN2aEWxo", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "cd72e9db-aaa4-485e-b3a5-7fbeed2cff36": { - "name": "I.M.P Jingle (From \"Helluva Boss\")", - "author": "Geek Music", - "url": "https://open.spotify.com/track/5x0bvS385Ata1irjLMyLTn", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "ea41c37c-7b62-4fd6-9fec-650e94d184f2": { - "name": "tipo daina", - "author": "Tipo Grupe", - "url": "https://www.youtube.com/watch?v=PTIOaSjEgIU", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "60214f0e-9a37-49b4-92bf-b7b548e501ad": { - "name": "Uzmerkiu akis", - "author": "SEL", - "url": "https://youtu.be/SdWj06XRZms?si=9TNGzjK9ITom-jaD", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "e1cb8b00-713b-4a0e-bc61-dbf2d2596fcf": { - "name": "Tik Tok", - "author": "SEL", - "url": "https://youtu.be/RkaIUateIxg", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "92561031-92ae-471a-b154-8519c715011d": { - "name": "On The Rob", - "author": "Cheap Dirty Horse", - "url": "https://open.spotify.com/track/2kZ2fD3ohaGhDHMBTAppto", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "91629850-33e2-4e18-8c37-6eafdfcde3f4": { - "name": "Give It To Me", - "author": "Unknown", - "url": "https://www.youtube.com/watch?v=upQe8EeSyZU", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "c393d1a6-b265-4a73-a7bd-d33667b08445": { - "name": "Kauniete", - "author": "DJ Dalgis", - "url": "https://www.youtube.com/watch?v=b3xPE9Iyuzc", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "0ee56450-2942-4805-9f08-b49652472258": { - "name": "Tricky Disco", - "author": "Unknown", - "url": "https://www.youtube.com/watch?v=t78qVdbAiXw", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "bb16708f-0cd7-4918-8014-d374d68acbd2": { - "name": "Not Allowed", - "author": "TV Girl", - "url": "https://open.spotify.com/track/3IznIgmXtrUaoPWpQTy5jB", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "d617c8c2-6237-40c4-8b47-b612a93c3689": { - "name": "vse shto nas ne Ubivaet", - "author": "Pimp Schwab", - "url": "https://www.youtube.com/watch?v=NTEXFyUE9Ww", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "7e1d6501-ec53-4513-9917-84886d7523e5": { - "name": "Amerikonas grizo sunus", - "author": "Zilvinas Zvagulis", - "url": "https://www.youtube.com/watch?v=UvzJEz5ADY8", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "d563619a-344e-41cf-99d1-5a52214ada49": { - "name": "Sports", - "author": "Beach Bunny", - "url": "https://open.spotify.com/track/77G0k1La0c5Dw8bAFANcyp", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "afdc69fa-c2ee-4dee-9794-e3166fc9dd20": { - "name": "Pedro (Jaxomy & Agatino Romero Remix)", - "author": "Raffaella Carra", - "url": "https://www.youtube.com/watch?v=AIGnRc7F86Q", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "0e969066-b7f9-4e60-a24f-989aad28dfac": { - "name": "Svajoklis", - "author": "Vairas", - "url": "https://www.youtube.com/watch?v=hs8_KTV0Vrw", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "720d5b94-ac54-4162-8da7-ba8d258139e6": { - "name": "KINO FILMAI", - "author": "RADVIS", - "url": "https://www.youtube.com/watch?v=vhAEkC3xNMo", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "eaf1cc63-3eb6-4d86-a986-e8129fff7fcb": { - "name": "Zalia Siera", - "author": "DJ Dalgis", - "url": "https://www.youtube.com/watch?v=nfentq_pez4", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "6f28b04a-588e-4a81-8b4e-aa4ed4f88e31": { - "name": "Pavasaris", - "author": "Depresinis feat. Deivas", - "url": "https://www.youtube.com/watch?v=yWWAucfQdN4", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "b26f7338-0d1f-4dba-b639-3bdae9d7e10e": { - "name": "Po stikliuka", - "author": "Tipo grupe ir Kastaneda", - "url": "https://www.youtube.com/watch?v=EtmE60nE7fI", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "b0c0d44c-86ca-4b80-a081-734a4178c870": { - "name": "After Marvins Dance (Marvin Gaye's 'After The Dance' Edit)", - "author": "Bauhouse", - "url": "https://www.youtube.com/watch?v=J-cgyYiExh8", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "83b50be2-c286-4dcc-9e7f-cacf5e4031fe": { - "name": "Not Fair", - "author": "Lily Allen", - "url": "https://www.youtube.com/watch?v=WON_YIbeLis", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "7ed02ac9-cb84-4a34-870d-56b226f0a6be": { - "name": "Always Forever", - "author": "Cults", - "url": "https://open.spotify.com/track/2enPRFda84VE2wtI8c86Uf", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "131ab436-869b-4b3b-8ce4-3b5087d3461f": { - "name": "1.9 TDI", - "author": "Grupe MX", - "url": "https://www.youtube.com/watch?v=8FBr5GQXsI8", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "c332ce2b-6b1c-4979-9977-dc00aa6e710b": { - "name": "TU ESI MELAGIS (Techno Extended)", - "author": "Radvis", - "url": "https://www.youtube.com/watch?v=kmvvP7GW_bw", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "639dc5af-b3e6-4d38-a003-80deac01d326": { - "name": "Myliu kina", - "author": "Zas", - "url": "https://www.youtube.com/watch?v=ImFrfmi-qT8", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "27d61e87-deec-4e4c-8015-ad8b691eea40": { - "name": "Klaipeda On Top", - "author": "Deivas", - "url": "https://www.youtube.com/watch?v=g_h2M3e2OYU", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "190a5577-124a-4232-9e6f-1d0a50f4d881": { - "name": "Cheri cheri lady", - "author": "Unknown", - "url": "https://www.youtube.com/watch?v=lrIKt5uDWZo", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "4c849092-b6c4-450c-b69c-304e54f63611": { - "name": "Deginam", - "author": "SADBOY", - "url": "https://www.youtube.com/watch?v=w3R0Aq1EGXg", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "56684f28-ff1a-4f65-a585-e9ea532babb2": { - "name": "AUDI", - "author": "MC ENDRAY", - "url": "https://www.youtube.com/watch?v=oIjNoMGEuRg", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "98b04764-39cc-4c82-a2e2-420dd85573ca": { - "name": "Tarp amzinybes", - "author": "SEL", - "url": "https://youtu.be/UfPj-0QpGFA", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "e9495391-8a6c-4942-9dc6-09b764f9d1e9": { - "name": "Zalias Pasas", - "author": "Zas", - "url": "https://www.youtube.com/watch?v=SZA7IjlCfyI", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "bc5fe406-040b-4c46-82ce-bb4505b81947": { - "name": "i like the way you kiss me", - "author": "Artemas", - "url": "https://www.youtube.com/watch?v=ODDRRXMi22E", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "858d8645-8637-4d3f-b4b7-c9c75743d90a": { - "name": "Dviratukas", - "author": "Eugenijus Ostapenko", - "url": "https://www.youtube.com/watch?v=ILFHZQK33Mw", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "76f7945f-e677-4297-a98a-708314f92de8": { - "name": "Kanikuli", - "author": "Unknown", - "url": "https://www.youtube.com/watch?v=GNMiDZTL7jo", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "862ddd87-68c4-4bed-a8cd-0e2021a0ce79": { - "name": "Renee", - "author": "SALES", - "url": "https://open.spotify.com/track/5MeUMSRreLHYLhw8ZTyqpk", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "be09f147-cda5-4e5f-ac29-eef9c3a7414f": { - "name": "Blue Monday", - "author": "MOGUAI, Tim Hox, Iggy", - "url": "https://open.spotify.com/track/4vAP9OY2Ci79fUCuc9EBdD", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "7da79c32-9eda-4897-be69-69fb39437404": { - "name": "Tricky Disco", - "author": "DR. VODKA", - "url": "https://www.youtube.com/watch?v=IknAUhl3i2o", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "dfc0782c-33f2-414d-9b56-76a77902bcc5": { - "name": "Baliavojam", - "author": "16Hz", - "url": "https://www.youtube.com/watch?v=Ia-qERX8WLs", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "8bf09666-9aba-4c71-a58a-a64200d49f9e": { - "name": "Cloud 9", - "author": "Beach Bunny", - "url": "https://open.spotify.com/track/6vFsBXYczYsP0H3lgunZOm", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "518e23e8-72df-42de-a918-6a9a197deb9a": { - "name": "Whiskey, Cola i Tequila", - "author": "Maco Mamuko", - "url": "https://www.youtube.com/watch?v=aBrN0k0Phtc", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "59c20651-6ffe-493d-886b-ccd8b7fe6dee": { - "name": "EVERYTHING WHAT", - "author": "Unknown", - "url": "https://www.youtube.com/watch?v=Gjdsq4kc5cA", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "c7867d88-60f2-483b-b435-883d4ff5b2f9": { - "name": "Alien Blues", - "author": "Vundabar", - "url": "https://open.spotify.com/track/11iIikXxC6NP0Ma8vMD27x", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "73ddd372-4853-4182-b212-b021e7dc8988": { - "name": "Parukom", - "author": "Tnn", - "url": "https://www.youtube.com/watch?v=v9pBZK2RIPI", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "47f2a63e-e9eb-48df-a61b-dbcdfa3aaf35": { - "name": "Everlong", - "author": "Foo Fighters", - "url": "https://open.spotify.com/track/5UWwZ5lm5PKu6eKsHAGxOk", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "2b33d0b1-aecb-4ff9-841a-3a7b2861f28d": { - "name": "Degtine", - "author": "Grupiokai", - "url": "https://www.youtube.com/watch?v=8SqbG2VmEFw", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "0e1d36ed-d07d-48c0-a101-1bf1ac6d7a26": { - "name": "Be taves", - "author": "Funky", - "url": "https://www.youtube.com/watch?v=heTDrDukLWU", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "9000f22e-83ff-4261-be0c-625fe1d806ab": { - "name": "MAMA MANE RODYS PER FARUS", - "author": "Unknown", - "url": "https://www.youtube.com/watch?v=F5HqXYRDZaE", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "8e82aa7c-a9e0-42ee-a845-6ba7d3439452": { - "name": "Apzavai", - "author": "Vaidas Baumila", - "url": "https://www.youtube.com/watch?v=H8uGi4ZMgHA", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "eb91fc63-4e0e-49e9-99c7-ea7fe5770a5b": { - "name": "LEDINE", - "author": "Depresinis", - "url": "https://www.youtube.com/watch?v=qugvChkXMLk", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "870502f1-e3a9-419b-9ba6-d8100d1198a5": { - "name": "Is Leto Leidziasi Saule", - "author": "Jovani, Karaliska Erdve", - "url": "https://www.youtube.com/watch?v=VqSu8iG1_DE", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "d8423579-1225-4865-9955-149e6878b59d": { - "name": "Black Sabbath", - "author": "Unknown", - "url": "https://www.youtube.com/watch?v=BOTIIw76qiE", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "df2e369f-2fee-49e5-b52c-33f73c34ffb2": { - "name": "Autostrada Vilnius", - "author": "16Hz", - "url": "https://www.youtube.com/watch?v=ANS2TSegr40", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "d8e93863-6102-4cda-a0b2-3728d20c9cf8": { - "name": "dashstar", - "author": "Knock2", - "url": "https://www.youtube.com/watch?v=58ml5b_On6w", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "78d3766c-7d79-43a1-aa37-f680cfd253e0": { - "name": "Perfect remix 1991", - "author": "Mason", - "url": "https://open.spotify.com/track/1VKWQgq0g2uKtgNfL0ceNM?si=b3f1dc504ddb41ed", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "4a4abe26-de77-4e0f-83c9-8eab9ca32281": { - "name": "Parnesk alaus OG", - "author": "Unknown", - "url": "https://www.youtube.com/watch?v=e7cB1JIlZ2k", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "ec3edf2d-1e19-4c71-8f5c-e53d9cd06c3b": { - "name": "Cigarette Daydreams", - "author": "Cage The Elephant", - "url": "https://open.spotify.com/track/6jHvX8ZnHKC1PnrPMJ0Emt", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "20945b3f-e9d6-4023-9a97-4a04424cc8a3": { - "name": "Basket Case", - "author": "Green Day", - "url": "https://www.youtube.com/watch?v=wZ8eZRxFA-0", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "3ea2a490-749f-4956-b7ef-bb0c428663a9": { - "name": "Dabar Geriausi Musu Vakarai", - "author": "Vilija ir Marijonas mikutavicius", - "url": "https://www.youtube.com/watch?v=MPnZkEscWo0", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "d71c0e55-5d40-4045-853e-b32da713c0b8": { - "name": "Lietuva (Nebelinksmas musu kaimas)", - "author": "Vytautas siskauskas", - "url": "https://www.youtube.com/watch?v=31UkGzde14c", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "c72768c0-1f2e-4992-b66f-e569c572435a": { - "name": "Nezinau, Kodel...", - "author": "Unknown", - "url": "https://www.youtube.com/watch?v=A-i2CkCnPoc", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "ae2c4c10-4fac-4d80-a114-81adf209c6a1": { - "name": "Kaip Diena", - "author": "morre", - "url": "https://www.youtube.com/watch?v=6LDgLWCQSSM", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "f3edb436-bf04-4ad5-ad45-684a601846c3": { - "name": "We are the winners", - "author": "LT United", - "url": "https://www.youtube.com/watch?v=DBAdOlQPbwg", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "0679475a-259c-4c98-9ae7-a58c10dfeedb": { - "name": "New Flesh", - "author": "Current Joys", - "url": "https://open.spotify.com/track/6HJxxqHWMdidwTVZmZWeHU", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "3d543d58-e33d-4158-9956-049309baa35c": { - "name": "Movin' Out (Anthony's Song)", - "author": "Billy Joel", - "url": "https://open.spotify.com/track/16GUMo6u3D2qo9a19AkYct", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "2eae7db0-4263-4870-b0c0-638a0d944c8e": { - "name": "Negeriau", - "author": "DJ Dalgis", - "url": "https://www.youtube.com/watch?v=c89YvG3MCcs", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "a0bd5ffe-4be8-498e-8f43-c5a9505a4872": { - "name": "Ten kur sapnai", - "author": "SEL", - "url": "https://youtu.be/GDj3NgjDbRo", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "90ae639e-0214-4a8e-b582-4949674ffaa2": { - "name": "Coco Jumbo", - "author": "Mr President", - "url": "https://www.youtube.com/watch?v=cOrc37wNUqU", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "abd6a036-f17a-4a6a-8420-2cc3e7e4a181": { - "name": "Ten kazkur giliai", - "author": "SEL", - "url": "https://youtu.be/N7YNlegeiqs?si=9BBH6hjrgOjJ01Nz", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "18c2b9bc-6403-4a67-94bd-1e9f5413d83b": { - "name": "Skrendu", - "author": "SEL", - "url": "https://youtu.be/G5Q_asvrXlA", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "6895e921-91f2-4713-b604-c2cdd9f3f1c2": { - "name": "We Didn’t Start The Fire", - "author": "Fall Out Boy", - "url": "https://open.spotify.com/track/60glT2wsoSHV3B8yCRSB8v", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "65fe7b10-2395-47f4-b920-089fe0d129ac": { - "name": "Kelyje", - "author": "Kastaneda", - "url": "https://www.youtube.com/watch?v=JVE6NQqKPL4", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "407155fd-3174-4778-ae93-bb01b7518f9f": { - "name": "Cia Mano Rojus", - "author": "Robertas Kupstas", - "url": "https://www.youtube.com/watch?v=xij_YeEInr8", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "2f179aab-c51b-4501-b5d1-8a2e51b19a80": { - "name": "Applause", - "author": "Nicolas Julian", - "url": "https://www.youtube.com/watch?v=9qHLELnq1B0", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "2b19ae9f-2321-41fc-8a1f-2bb4c2975380": { - "name": "Malunas Prie Kelio", - "author": "VainHouse", - "url": "https://www.youtube.com/watch?v=bbwuNjDXCiM", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "a6a20f00-cbf9-4506-9655-d6fd27944fea": { - "name": "Rhodes Trip", - "author": "THEOS", - "url": "https://www.youtube.com/watch?v=m7guRO0Uz_c", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "fc3f499b-2c33-41d0-b79c-ca68486b2a4d": { - "name": "Blaue Augen", - "author": "08 Blumchen", - "url": "https://www.youtube.com/watch?v=mE4PZcUfiwE", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "f5a31a44-fc62-4cce-b65e-05e4085864fe": { - "name": "End of Beginning", - "author": "Djo", - "url": "https://open.spotify.com/track/3qhlB30KknSejmIvZZLjOD", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "9d482849-d488-4222-adc0-727f92babcab": { - "name": "Jau Nutilo Sirgaliai", - "author": "Ciulpuoneliai", - "url": "https://www.youtube.com/watch?v=s8qIVA1U0C0", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "dc6c36b0-f595-457f-8fc3-641710b0e3b9": { - "name": "I Pajuri", - "author": "Mercy Dance", - "url": "https://www.youtube.com/watch?v=RPpkMh47l9w", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "02d90830-7b5f-430f-b82c-f45998862e81": { - "name": "Juodas Golfas", - "author": "NL", - "url": "https://www.youtube.com/watch?v=f2-ZmElSvPc", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "f81f8f9d-6c56-4ae3-8f5f-28c04632d3b5": { - "name": "Kcik 23", - "author": "Unknown Artist", - "url": "https://www.youtube.com/watch?v=SnnqDdZJpzA", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "a950fac9-3b5f-4215-8a49-7680fd5b90bf": { - "name": "Gyvenu", - "author": "69 Danguje", - "url": "https://www.youtube.com/watch?v=HMXlhmAoux4", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "6dd614cd-ba76-483c-bf6d-26eb1f3b6f1a": { - "name": "99 Red Balloons", - "author": "Nena", - "url": "https://open.spotify.com/track/7p8HVe22aGW1XtO1hoDHGo", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "7f2b2809-1b38-45b5-876c-cbdb42b26bdf": { - "name": "Volkswagina", - "author": "Depresinis", - "url": "https://www.youtube.com/watch?v=1lZR1VKsQHo", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "0e33d04e-776e-4746-ab17-c4602d556716": { - "name": "1001 Naktis", - "author": "SADBOY", - "url": "https://www.youtube.com/watch?v=mLJIjGvWmKI", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "34e3c90b-7763-4154-9035-367e22ed7d75": { - "name": "Robinzonas", - "author": "Vitalija Katunskyte", - "url": "https://www.youtube.com/watch?v=erDHG-QpbPY", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "b23f9b7f-1668-43f0-a1bd-9471759db18f": { - "name": "Juda Tavo rankos", - "author": "Elektra", - "url": "https://www.youtube.com/watch?v=k2RuDoudnOE", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "7b680328-e576-4185-a5da-3c37de98ca42": { - "name": "cabin fever", - "author": "re6ce", - "url": "https://open.spotify.com/track/3c3oUMxOr2cVFBY6V3v08C", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "22f18d88-fb39-4cec-98be-02d4ebe3a6ee": { - "name": "Party maker", - "author": "MUTA", - "url": "https://www.youtube.com/watch?v=LT9VNK1aCXY", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "83808446-bd43-4140-86ff-853fea897a89": { - "name": "Bla Bla Bla", - "author": "Gigi D'Agostino", - "url": "https://www.youtube.com/watch?v=yKapqR2XRJE", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "4cf5e323-5e79-4471-816a-5fa345854cea": { - "name": "rytmecio rasos", - "author": "nemuno krantai", - "url": "https://www.youtube.com/watch?v=2-fGbsrofv4", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "484b9560-731b-447d-9e7f-3d32eb68b05f": { - "name": "Freed from Desire", - "author": "Drenchill", - "url": "https://www.youtube.com/watch?v=6b6FBneAENQ", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "bd85a9d7-1fb6-4154-a290-e5137590e419": { - "name": "I gamta", - "author": "Andzikas", - "url": "https://www.youtube.com/watch?v=UyLdjC-hihM", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "192a8655-7dfc-4c4b-b351-87c75cbbe048": { - "name": "It Wasn't Me", - "author": "Shaggy", - "url": "https://www.youtube.com/watch?v=ssVj50ombaM", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "0c77785e-7149-45a7-84a1-a9c8ccaa9f7f": { - "name": "Lyja", - "author": "SEL", - "url": "https://www.youtube.com/watch?v=KL6JBWnXCxw", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "1e77552d-702f-4c61-8e9f-bd02bbafe434": { - "name": "Morning Sex (Mochakk Remix)", - "author": "Ralph Castelli", - "url": "https://www.youtube.com/watch?v=6bCwJ_TIDG4", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "080d60fb-bdf1-40f3-8b81-967c5ea2fe44": { - "name": "moi marmeladni (paprobui mua mua)", - "author": "Katja lel", - "url": "https://www.youtube.com/watch?v=0JMdXFHo5SY", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "81426b49-3511-4e48-be21-3c24acba0fb9": { - "name": "Kernkraft 400", - "author": "Zombie Nation", - "url": "https://www.youtube.com/watch?v=z5LW07FTJbI", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "05a28184-e58e-42c3-a803-512bb0817a07": { - "name": "Vakareja", - "author": "Karaliska Erdve", - "url": "https://www.youtube.com/watch?v=g0HmrlJ7fhE", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "457bc1f5-f804-4665-a595-8e56a6558d1d": { - "name": "Sombrero", - "author": "Kastanenda", - "url": "https://www.youtube.com/watch?v=3Z3_4TknCfQ", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "2374179d-d6a8-41b9-9cac-21147303fc8e": { - "name": "Nebenoriu Laukt", - "author": "Dzordana Butkute", - "url": "https://www.youtube.com/watch?v=_AozFrAqNMk", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "3b2573d4-2e1b-4446-a377-5fcb2b0a70c5": { - "name": "18 mne uze", - "author": "Ruki Verch", - "url": "https://www.youtube.com/watch?v=Hxab_Sr132o", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "35877af8-65ad-4d85-9f18-93b98fd3ebd4": { - "name": "Le Son Dancefloor", - "author": "Sweely", - "url": "https://www.youtube.com/watch?v=5uEvZgmoG6Y", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "201c6680-7dcf-4d75-8bdc-76ff9a715167": { - "name": "Gyvenimo man vieno neuztenka", - "author": "SEL", - "url": "https://youtu.be/7Gd9XaEG5o4", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "d286a3a7-ab7b-488c-9c68-b7521e290c5e": { - "name": "Bossa Nova (Lewii Edit)", - "author": "Billie Eilish", - "url": "https://www.youtube.com/watch?v=gNawHj2NCxA", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "75c6e1aa-21c7-4626-9def-602d656282bc": { - "name": "Ka Tu Ka Vakare", - "author": "Unknown", - "url": "https://www.youtube.com/watch?v=6SOS4ljHbJY", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "eb08806a-5fe3-46d7-a989-89f6a55187cc": { - "name": "Tailwhip (Lewii Edit)", - "author": "Men I Trust", - "url": "https://www.youtube.com/watch?v=XhyM-JUWwWQ", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "9ef33d55-972d-490c-95c6-bf046bf4f979": { - "name": "MONEY ON THE DASH", - "author": "Unknown", - "url": "https://open.spotify.com/track/6nVEV8CIU4dw12oVZbKJtl", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "7832d70f-2af3-417f-88dd-e193622ac599": { - "name": "DZIEWCZYNO Z TIKTOKA", - "author": "DR. VODKA", - "url": "https://www.youtube.com/watch?v=HLbw1WQt64o", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "a59cb678-f229-43cf-b438-4ce53b7264ae": { - "name": "R1", - "author": "NL", - "url": "https://www.youtube.com/watch?v=hSgav4fYnZ8", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "bcb9af16-7bdb-458a-b092-42225abf2645": { - "name": "LEDUKAI", - "author": "Depresinis feat. Deivas", - "url": "https://www.youtube.com/watch?v=R2-MtpkKgGI", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "0491fd9f-149d-4e70-bc5c-0fae9a21d9b0": { - "name": "Rozovoe vino", - "author": "Eldzej and Feduk", - "url": "https://www.youtube.com/watch?v=S9oXj3a4gZ4", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "70a80d91-581e-4599-81e6-d047f28e9068": { - "name": "Margarita", - "author": "Rondo", - "url": "https://www.youtube.com/watch?v=rF4w-Rxsiv4", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "5015106c-abcb-45c2-aed3-1f28674f92f6": { - "name": "Dance For Me", - "author": "Unknown", - "url": "https://www.youtube.com/watch?v=5DTSvGO_944", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "41a8d7c8-4b75-46f6-9940-7f0b8f5f5feb": { - "name": "Beggin' (Techno)", - "author": "Unknown", - "url": "https://www.youtube.com/watch?v=tXPs1FwW6lk", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "2645c0f2-fade-489a-87ad-261d5d983ef6": { - "name": "Bad Boys", - "author": "Unknown", - "url": "https://www.youtube.com/watch?v=NTC7RD8xzCY", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "cbc90bff-5476-408c-9cc8-afd1af5b536d": { - "name": "Vienna", - "author": "Billy Joel", - "url": "https://open.spotify.com/track/4U45aEWtQhrm8A5mxPaFZ7", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "4eafd817-d75a-451e-b6b4-38ef29e66fdf": { - "name": "Ne, nereikia asaru", - "author": "Rytis Cicinas", - "url": "https://www.youtube.com/watch?v=48GSg1q2kPE", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "383cb60f-13fd-4947-9924-6c5d8c39d453": { - "name": "Kur Tu", - "author": "Patruliai", - "url": "https://www.youtube.com/watch?v=OPWhiu3cvj0", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "85098bbc-86fa-4da4-b342-d2a512738060": { - "name": "Topolini puh", - "author": "Unknown", - "url": "https://www.youtube.com/watch?v=UUryvYF8tUs", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "877c24e4-c0c0-4e9c-a553-221e381c8a00": { - "name": "Stumblin' In", - "author": "CYRIL", - "url": "https://open.spotify.com/track/0h3Xy4V4apMraB5NuM8U7Z", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "e37c6cb6-ad8e-43a7-83d1-8b795db8aa1c": { - "name": "Harness Your Hopes", - "author": "Pavement", - "url": "https://open.spotify.com/track/4vsoWZcvtvSsE0OiVvDDvX", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "6d78099b-042c-4b19-b3d9-15af1bf4ef10": { - "name": "JUODA ORCHIDEJA", - "author": "MG INTERNATIONAL", - "url": "https://www.youtube.com/watch?v=HQvceFRBq9M", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "8c641f7f-e151-4abc-932c-a9895823a278": { - "name": "Nevaidink", - "author": "SixthBoi", - "url": "https://www.youtube.com/watch?v=nOTNnnrqTII", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "2c650e29-9f87-4253-8074-146f3653051d": { - "name": "Satisfaction", - "author": "Benny Benassi", - "url": "https://www.youtube.com/watch?v=a0fkNdPiIL4", - "source_type": "Youtube", - "icon_type": "FromSource" - }, "cec368bd-6b4c-4c89-9eeb-1b88bed0efc3": { "name": "PARIS (TECHNO)", "author": "$UICIDEBOY$", "url": "https://www.youtube.com/watch?v=YYDJmGDkEyw", "source_type": "Youtube", - "icon_type": "FromSource" - }, - "0c5a22fc-2a61-4171-a5b9-f24da0c71466": { - "name": "As ziuriu i tave pasauli", - "author": "SEL", - "url": "https://youtu.be/_SPDjl80kKw", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "7e32803d-a5a9-453c-8c81-b479c51e5bc9": { - "name": "Looking Out for You", - "author": "Joy Again", - "url": "https://open.spotify.com/track/3jfZ9M23l0L7RxzYMTgBTv", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "4a7b1853-7529-498d-addf-25e894a37ccf": { - "name": "Temptation", - "author": "Arash", - "url": "https://www.youtube.com/watch?v=6X3ZJh762-I", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "6a00704f-6da9-44d7-8fee-75cf487036f0": { - "name": "Lovoj Vezi", - "author": "Tipo grupe", - "url": "https://www.youtube.com/watch?v=M3zVMzWCy_c", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "9866acdd-97ee-4e19-ba20-a64caa9b02ee": { - "name": "Where'd All the Time Go?", - "author": "Dr. Dog", - "url": "https://open.spotify.com/track/0UV5zxRMz6AO4ZwUOZNIKI", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "6bfe21f8-b6e5-409b-b6cb-a5692f6dfeeb": { - "name": "Welcome To The Club", - "author": "Manian", - "url": "https://www.youtube.com/watch?v=7F9xDewtgNA", - "source_type": "Youtube", - "icon_type": "FromSource" + "icon_type": "FromSource", + "genres": [], + "length": 0 }, "c374f3c2-b498-49b3-88c5-a2e6e741e1e8": { "name": "Leisk", "author": "SEL", "url": "https://youtu.be/DDPmFMrffXQ", "source_type": "Youtube", - "icon_type": "FromSource" + "icon_type": "FromSource", + "genres": [], + "length": 0 }, - "e53d24bf-930d-490a-b41b-9b3382e24e3c": { - "name": "Truputi", - "author": "Ganja", - "url": "https://www.youtube.com/watch?v=Pxve7CwiCHM", + "05a28184-e58e-42c3-a803-512bb0817a07": { + "name": "Vakareja", + "author": "Karaliska Erdve", + "url": "https://www.youtube.com/watch?v=g0HmrlJ7fhE", "source_type": "Youtube", - "icon_type": "FromSource" - }, - "08995ab0-2954-4d6b-913e-27609e90b354": { - "name": "Caramelldansen", - "author": "Alfons, LOOKET, DJ BERIT", - "url": "https://open.spotify.com/track/1v7aZHBUwKxeCgmpe6fVUH", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "4e903bfb-e9bf-49dc-a299-e08949ab78f9": { - "name": "DANCE", - "author": "ROMANCEPLANET", - "url": "https://www.youtube.com/watch?v=ircOfMb4gEw", - "source_type": "Youtube", - "icon_type": "FromSource" + "icon_type": "FromSource", + "genres": [], + "length": 0 }, "2bd2e64e-28f0-4bd7-aee3-e1d27ed0797d": { "name": "In the End", "author": "Linkin Park", "url": "https://open.spotify.com/track/60a0Rd6pjrkxjPbaKzXjfq", "source_type": "Spotify", - "icon_type": "FromSource" + "icon_type": "FromSource", + "genres": [], + "length": 0 }, - "ca765223-e4e6-4b5d-8928-919c3f491b43": { - "name": "Kaifuok", - "author": "SADBOY", - "url": "https://www.youtube.com/watch?v=vclryWgfy8I", + "201c6680-7dcf-4d75-8bdc-76ff9a715167": { + "name": "Gyvenimo man vieno neuztenka", + "author": "SEL", + "url": "https://youtu.be/7Gd9XaEG5o4", "source_type": "Youtube", - "icon_type": "FromSource" + "icon_type": "FromSource", + "genres": [], + "length": 0 }, - "a1ab9370-70bc-488d-a78b-5cdc09c82f73": { - "name": "Trys Trys Trys", - "author": "Riaukenzo", - "url": "https://www.youtube.com/watch?v=qJv6GRQCnCk", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "402a9066-127a-4a62-b711-50e979abbd51": { - "name": "Naktinis Tusas", - "author": "Dove", - "url": "https://www.youtube.com/watch?v=pz-HEAwFEnk", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "95a3350c-c62f-4543-8cfe-6c512861b229": { - "name": "Ryk Zuvedra ryk", - "author": "Zilviokas", - "url": "https://www.youtube.com/watch?v=eN6BOI7UlSE", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "8e8c3f6c-e34b-4f4e-b9be-f36be5901435": { - "name": "biznis", - "author": "PROFLAME", - "url": "https://www.youtube.com/watch?v=t139Vd83pgs", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "1a22e35a-0af1-4326-b59c-00d59504446b": { - "name": "Virs debesu", - "author": "Andzikas", - "url": "https://www.youtube.com/watch?v=PHJcVGhxra8", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "80a169ba-f711-408c-834c-744bac3660ca": { - "name": "If Theres A Heaven I Wanna See It", - "author": "Fidde", - "url": "https://www.youtube.com/watch?v=l2Nw7cIh7qg", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "88fe04aa-a7be-4f6c-b32f-d3d25e58bbf8": { - "name": "Because I Got High", - "author": "Afroman", - "url": "https://www.youtube.com/watch?v=WeYsTmIzjkw", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "e71a61d4-b54a-47d1-b0ad-db6695bd0739": { - "name": "Hey Lover!", - "author": "Wabie", - "url": "https://open.spotify.com/track/7rC3P7tpWriaC4hYWKwGQd", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "f1878fda-ecec-4303-a6df-dc6adf1ea3c0": { - "name": "Juodas Garvezys (Remix)", + "75c6e1aa-21c7-4626-9def-602d656282bc": { + "name": "Ka Tu Ka Vakare", "author": "Unknown", - "url": "https://www.youtube.com/watch?v=D-7qQbXHSAw", + "url": "https://www.youtube.com/watch?v=6SOS4ljHbJY", "source_type": "Youtube", - "icon_type": "FromSource" - }, - "009b9458-3205-4b13-9c65-03f16fea2293": { - "name": "Whiskey Cola Lietuviskai (sultys degtinele) remix", - "author": "L1GHT CASH", - "url": "https://www.youtube.com/watch?v=YVaqDaf1KXU", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "4b61344d-fa89-4b79-bd45-3b1fc8c8cc1c": { - "name": "Rycka klipas", - "author": "Unknown", - "url": "https://www.youtube.com/watch?v=nuTUDSQ3BBI", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "c28f14ca-ec10-469a-b0cc-3e26e9f56007": { - "name": "VASARA ZJBS", - "author": "Depresinis & MERAKI2004", - "url": "https://www.youtube.com/watch?v=BD-pBjRy-5A", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "5c2ee27e-d564-404a-8259-87d1d336f106": { - "name": "Money", - "author": "The Drums", - "url": "https://open.spotify.com/track/3VIJBrMpvimHEw5wtPh2wB", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "fa339b0b-8d3a-45e7-aed9-f744afb4a666": { - "name": "Eik Tu NA", - "author": "AVA", - "url": "https://www.youtube.com/watch?v=yRf3ijaIgOg", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "83ff90a9-4a19-4a66-a452-c2bafdfb884b": { - "name": "You're My Heart, You're My Soul", - "author": "Modern Talking", - "url": "https://www.youtube.com/watch?v=4kHl4FoK1Ys", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "9fabb799-f6aa-45a0-93b7-8cb08ab8f0a8": { - "name": "16 metu", - "author": "69 Danguje", - "url": "https://www.youtube.com/watch?v=nwjoqPcUPrw", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "3453b523-e1f0-49d3-b60b-5ba063b6c26d": { - "name": "The Love Parade ( Bounce Invaderz )", - "author": "Unknown", - "url": "https://www.youtube.com/watch?v=xogT6KBWjCU3", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "7d232736-f977-4645-bd64-106e94f91bb0": { - "name": "Judam Lietuvoj", - "author": "Unknown", - "url": "https://www.youtube.com/watch?v=WDzWSEgSy5U", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "47001462-76c8-4aee-8ed4-65242600f840": { - "name": "Fireball", - "author": "Pitbul", - "url": "https://www.youtube.com/watch?v=HMqgVXSvwGo", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "22565196-5757-4767-8f1f-f1c9b8a87dcc": { - "name": "I WAS MADE FOR LOVIN' YOU (TECHNO)", - "author": "Unknown", - "url": "https://www.youtube.com/watch?v=asVznhccYao", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "3525668b-4402-4fb8-b106-bed44d8c9db2": { - "name": "I Kluba", - "author": "Raketa", - "url": "https://www.youtube.com/watch?v=FkSjtpYN3EI", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "fa7d62b1-2f9a-4499-b07b-ac3127c0f69f": { - "name": "Mano Skonis Sokolado (Matuze & Arnisxd Remix)", - "author": "Sokoledas", - "url": "https://soundcloud.com/matuze/sokoledas-mano-skonis-sokolado-matuze-arnisxd-remix", - "source_type": "Soundcloud", - "icon_type": "FromSource" - }, - "615d63ee-51aa-4ac2-b826-9a41f59b8622": { - "name": "I Love It", - "author": "Icona Pop", - "url": "https://www.youtube.com/watch?v=UxxajLWwzqY", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "8858c7a1-ea6d-409b-9fc3-7256a39d4d8b": { - "name": "PENKTADIENIS", - "author": "NIERKA", - "url": "https://www.youtube.com/watch?v=h3TuZj_OAf0", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "eadbd827-0f71-4401-97bd-d11c365c3243": { - "name": "I Only See Things I Dont Have", - "author": "Fidde", - "url": "https://www.youtube.com/watch?v=vX_Ye_ZzI-Y", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "795b22ae-d19e-4571-a5d7-fba5a66d5b6e": { - "name": "PLAIN WHITE TEE", - "author": "ROMANCEPLANET", - "url": "https://www.youtube.com/watch?v=tdVQbNwjGac", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "8dca8d6c-3388-4133-b773-79b9f076e467": { - "name": "0,7", - "author": "Depresinis feat. Deivas", - "url": "https://www.youtube.com/watch?v=rjwFjBgTzAA", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "2e9ef729-1560-446c-af6a-8a9d4c43ac9a": { - "name": "Big Sis", - "author": "SALES", - "url": "https://open.spotify.com/track/0ARp9mXXpPflIwehy25kCa", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "6bc8cd16-722b-42e4-9824-a1de9c67029f": { - "name": "Tears Drop", - "author": "Baltra", - "url": "https://www.youtube.com/watch?v=EXXMtKPfuzY", - "source_type": "Youtube", - "icon_type": "FromSource" + "icon_type": "FromSource", + "genres": [], + "length": 0 }, "bf529d54-1ad0-4396-84c7-82bd7fe495c6": { "name": "P.R.O.T.E.C.T.T.R.A.N.S.K.I.D.S.", "author": "Cheap Dirty Horse", "url": "https://open.spotify.com/track/1ytHY16pP1P6A2noeiPXuU", "source_type": "Spotify", - "icon_type": "FromSource" + "icon_type": "FromSource", + "genres": [], + "length": 0 }, - "9d7a0837-04d4-40f7-92dc-48c7db70be51": { - "name": "As Judu", - "author": "Adomas Vysniauskas", - "url": "https://www.youtube.com/watch?v=dMm16TzZrjg", + "9000f22e-83ff-4261-be0c-625fe1d806ab": { + "name": "MAMA MANE RODYS PER FARUS", + "author": "Unknown", + "url": "https://www.youtube.com/watch?v=F5HqXYRDZaE", "source_type": "Youtube", - "icon_type": "FromSource" + "icon_type": "FromSource", + "genres": [], + "length": 0 }, - "0b907d17-e3f9-4dbb-9c2d-e10327316f6e": { - "name": "UZ MUS IR JUS", - "author": "Mr.Bullet", - "url": "https://www.youtube.com/watch?v=85q_7jXEgH8", + "6f28b04a-588e-4a81-8b4e-aa4ed4f88e31": { + "name": "Pavasaris", + "author": "Depresinis feat. Deivas", + "url": "https://www.youtube.com/watch?v=yWWAucfQdN4", "source_type": "Youtube", - "icon_type": "FromSource" + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "4a4abe26-de77-4e0f-83c9-8eab9ca32281": { + "name": "Parnesk alaus OG", + "author": "Unknown", + "url": "https://www.youtube.com/watch?v=e7cB1JIlZ2k", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "720d5b94-ac54-4162-8da7-ba8d258139e6": { + "name": "KINO FILMAI", + "author": "RADVIS", + "url": "https://www.youtube.com/watch?v=vhAEkC3xNMo", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "eb91fc63-4e0e-49e9-99c7-ea7fe5770a5b": { + "name": "LEDINE", + "author": "Depresinis", + "url": "https://www.youtube.com/watch?v=qugvChkXMLk", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "a0bd5ffe-4be8-498e-8f43-c5a9505a4872": { + "name": "Ten kur sapnai", + "author": "SEL", + "url": "https://youtu.be/GDj3NgjDbRo", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "f81f8f9d-6c56-4ae3-8f5f-28c04632d3b5": { + "name": "Kcik 23", + "author": "Unknown Artist", + "url": "https://www.youtube.com/watch?v=SnnqDdZJpzA", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "0679475a-259c-4c98-9ae7-a58c10dfeedb": { + "name": "New Flesh", + "author": "Current Joys", + "url": "https://open.spotify.com/track/6HJxxqHWMdidwTVZmZWeHU", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "383cb60f-13fd-4947-9924-6c5d8c39d453": { + "name": "Kur Tu", + "author": "Patruliai", + "url": "https://www.youtube.com/watch?v=OPWhiu3cvj0", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "6d78099b-042c-4b19-b3d9-15af1bf4ef10": { + "name": "JUODA ORCHIDEJA", + "author": "MG INTERNATIONAL", + "url": "https://www.youtube.com/watch?v=HQvceFRBq9M", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "7e32803d-a5a9-453c-8c81-b479c51e5bc9": { + "name": "Looking Out for You", + "author": "Joy Again", + "url": "https://open.spotify.com/track/3jfZ9M23l0L7RxzYMTgBTv", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "6bfe21f8-b6e5-409b-b6cb-a5692f6dfeeb": { + "name": "Welcome To The Club", + "author": "Manian", + "url": "https://www.youtube.com/watch?v=7F9xDewtgNA", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "08995ab0-2954-4d6b-913e-27609e90b354": { + "name": "Caramelldansen", + "author": "Alfons, LOOKET, DJ BERIT", + "url": "https://open.spotify.com/track/1v7aZHBUwKxeCgmpe6fVUH", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "8e8c3f6c-e34b-4f4e-b9be-f36be5901435": { + "name": "biznis", + "author": "PROFLAME", + "url": "https://www.youtube.com/watch?v=t139Vd83pgs", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "1a22e35a-0af1-4326-b59c-00d59504446b": { + "name": "Virs debesu", + "author": "Andzikas", + "url": "https://www.youtube.com/watch?v=PHJcVGhxra8", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "d8e93863-6102-4cda-a0b2-3728d20c9cf8": { + "name": "dashstar", + "author": "Knock2", + "url": "https://www.youtube.com/watch?v=58ml5b_On6w", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "d8423579-1225-4865-9955-149e6878b59d": { + "name": "Black Sabbath", + "author": "Unknown", + "url": "https://www.youtube.com/watch?v=BOTIIw76qiE", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "83808446-bd43-4140-86ff-853fea897a89": { + "name": "Bla Bla Bla", + "author": "Gigi D'Agostino", + "url": "https://www.youtube.com/watch?v=yKapqR2XRJE", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "0e33d04e-776e-4746-ab17-c4602d556716": { + "name": "1001 Naktis", + "author": "SADBOY", + "url": "https://www.youtube.com/watch?v=mLJIjGvWmKI", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "4b61344d-fa89-4b79-bd45-3b1fc8c8cc1c": { + "name": "Rycka klipas", + "author": "Unknown", + "url": "https://www.youtube.com/watch?v=nuTUDSQ3BBI", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "abd6a036-f17a-4a6a-8420-2cc3e7e4a181": { + "name": "Ten kazkur giliai", + "author": "SEL", + "url": "https://youtu.be/N7YNlegeiqs?si=9BBH6hjrgOjJ01Nz", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 }, "4a56c71c-70f0-45e7-a9b8-2304d41e1877": { "name": "Big Jet Plane", "author": "Restricted", "url": "https://www.youtube.com/watch?v=NpVF0z5N-tE", "source_type": "Youtube", - "icon_type": "FromSource" - }, - "9d93859c-dae3-4c03-8f8d-d4f6bc0e287e": { - "name": "Jealous", - "author": "Eyedress", - "url": "https://open.spotify.com/track/1aXV8GrmQLvgoFtBPERP7E", - "source_type": "Spotify", - "icon_type": "FromSource" + "icon_type": "FromSource", + "genres": [], + "length": 0 }, "9be83d96-6dfb-47a0-b58e-a1aed1cf6031": { "name": "Pasitusinam", "author": "NL", "url": "https://www.youtube.com/watch?v=WhSFudvloog", "source_type": "Youtube", - "icon_type": "FromSource" - }, - "50186034-e8b4-4778-81e3-ab327e54dbff": { - "name": "We Are The People", - "author": "Empire Of The Sun, southstar", - "url": "https://www.youtube.com/watch?v=qguEGR5BK2k", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "6c3f2503-0160-4c42-8b17-25ff402f3fa7": { - "name": "Visky Kola karaleva trans pola", - "author": "Dzaro and hansa", - "url": "https://www.youtube.com/watch?v=fflrMvZ2HtA", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "ee1e8d12-75ac-43f7-bf85-a1b69eb66e86": { - "name": "Vanished", - "author": "Crystal Castles", - "url": "https://open.spotify.com/track/3gGMsx3jxYKfhXq8LMj1tz", - "source_type": "Spotify", - "icon_type": "FromSource" - }, - "4f368ef5-08d0-4d1f-b8ba-a34ee9fc6aa2": { - "name": "Blizgantys Naikai", - "author": "SADBOY", - "url": "https://www.youtube.com/watch?v=p5KsYJGcfOM", - "source_type": "Youtube", - "icon_type": "FromSource" - }, - "8fcad64e-bb63-414b-9cad-243f1f4c4293": { - "name": "FALL FROM THE SKY", - "author": "ROMANCEPLANET", - "url": "https://www.youtube.com/watch?v=HMhzxzXBisw", - "source_type": "Youtube", - "icon_type": "FromSource" + "icon_type": "FromSource", + "genres": [], + "length": 0 }, "16dafb40-ebac-4e04-961a-99d79789f1a3": { "name": "Topine Panele", "author": "Wenona Waves", "url": "https://www.youtube.com/watch?v=MPHuhmUomfE", "source_type": "Youtube", - "icon_type": "FromSource" + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "80a169ba-f711-408c-834c-744bac3660ca": { + "name": "If Theres A Heaven I Wanna See It", + "author": "Fidde", + "url": "https://www.youtube.com/watch?v=l2Nw7cIh7qg", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "b0c0d44c-86ca-4b80-a081-734a4178c870": { + "name": "After Marvins Dance (Marvin Gaye's 'After The Dance' Edit)", + "author": "Bauhouse", + "url": "https://www.youtube.com/watch?v=J-cgyYiExh8", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "afdc69fa-c2ee-4dee-9794-e3166fc9dd20": { + "name": "Pedro (Jaxomy & Agatino Romero Remix)", + "author": "Raffaella Carra", + "url": "https://www.youtube.com/watch?v=AIGnRc7F86Q", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "c28f14ca-ec10-469a-b0cc-3e26e9f56007": { + "name": "VASARA ZJBS", + "author": "Depresinis & MERAKI2004", + "url": "https://www.youtube.com/watch?v=BD-pBjRy-5A", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "e1cb8b00-713b-4a0e-bc61-dbf2d2596fcf": { + "name": "Tik Tok", + "author": "SEL", + "url": "https://youtu.be/RkaIUateIxg", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "2eae7db0-4263-4870-b0c0-638a0d944c8e": { + "name": "Negeriau", + "author": "DJ Dalgis", + "url": "https://www.youtube.com/watch?v=c89YvG3MCcs", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "73ddd372-4853-4182-b212-b021e7dc8988": { + "name": "Parukom", + "author": "Tnn", + "url": "https://www.youtube.com/watch?v=v9pBZK2RIPI", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "65fe7b10-2395-47f4-b920-089fe0d129ac": { + "name": "Kelyje", + "author": "Kastaneda", + "url": "https://www.youtube.com/watch?v=JVE6NQqKPL4", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "3525668b-4402-4fb8-b106-bed44d8c9db2": { + "name": "I Kluba", + "author": "Raketa", + "url": "https://www.youtube.com/watch?v=FkSjtpYN3EI", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "98b04764-39cc-4c82-a2e2-420dd85573ca": { + "name": "Tarp amzinybes", + "author": "SEL", + "url": "https://youtu.be/UfPj-0QpGFA", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "cbc90bff-5476-408c-9cc8-afd1af5b536d": { + "name": "Vienna", + "author": "Billy Joel", + "url": "https://open.spotify.com/track/4U45aEWtQhrm8A5mxPaFZ7", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "03f406b5-d5e9-4d22-b9bc-d0b36354400a": { + "name": "Diskoteka is 90 hit", + "author": "Raim & Artur feat. Zhenis", + "url": "https://www.youtube.com/watch?v=GfBhxlNhrn0", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "862ddd87-68c4-4bed-a8cd-0e2021a0ce79": { + "name": "Renee", + "author": "SALES", + "url": "https://open.spotify.com/track/5MeUMSRreLHYLhw8ZTyqpk", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "9d482849-d488-4222-adc0-727f92babcab": { + "name": "Jau Nutilo Sirgaliai", + "author": "Ciulpuoneliai", + "url": "https://www.youtube.com/watch?v=s8qIVA1U0C0", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "6bc8cd16-722b-42e4-9824-a1de9c67029f": { + "name": "Tears Drop", + "author": "Baltra", + "url": "https://www.youtube.com/watch?v=EXXMtKPfuzY", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "b26f7338-0d1f-4dba-b639-3bdae9d7e10e": { + "name": "Po stikliuka", + "author": "Tipo grupe ir Kastaneda", + "url": "https://www.youtube.com/watch?v=EtmE60nE7fI", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "6a00704f-6da9-44d7-8fee-75cf487036f0": { + "name": "Lovoj Vezi", + "author": "Tipo grupe", + "url": "https://www.youtube.com/watch?v=M3zVMzWCy_c", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "18c2b9bc-6403-4a67-94bd-1e9f5413d83b": { + "name": "Skrendu", + "author": "SEL", + "url": "https://youtu.be/G5Q_asvrXlA", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "4cf5e323-5e79-4471-816a-5fa345854cea": { + "name": "rytmecio rasos", + "author": "nemuno krantai", + "url": "https://www.youtube.com/watch?v=2-fGbsrofv4", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "35877af8-65ad-4d85-9f18-93b98fd3ebd4": { + "name": "Le Son Dancefloor", + "author": "Sweely", + "url": "https://www.youtube.com/watch?v=5uEvZgmoG6Y", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "7e1d6501-ec53-4513-9917-84886d7523e5": { + "name": "Amerikonas grizo sunus", + "author": "Zilvinas Zvagulis", + "url": "https://www.youtube.com/watch?v=UvzJEz5ADY8", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "795b22ae-d19e-4571-a5d7-fba5a66d5b6e": { + "name": "PLAIN WHITE TEE", + "author": "ROMANCEPLANET", + "url": "https://www.youtube.com/watch?v=tdVQbNwjGac", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "fa339b0b-8d3a-45e7-aed9-f744afb4a666": { + "name": "Eik Tu NA", + "author": "AVA", + "url": "https://www.youtube.com/watch?v=yRf3ijaIgOg", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "6895e921-91f2-4713-b604-c2cdd9f3f1c2": { + "name": "We Didn’t Start The Fire", + "author": "Fall Out Boy", + "url": "https://open.spotify.com/track/60glT2wsoSHV3B8yCRSB8v", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "3ea2a490-749f-4956-b7ef-bb0c428663a9": { + "name": "Dabar Geriausi Musu Vakarai", + "author": "Vilija ir Marijonas mikutavicius", + "url": "https://www.youtube.com/watch?v=MPnZkEscWo0", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "6dd614cd-ba76-483c-bf6d-26eb1f3b6f1a": { + "name": "99 Red Balloons", + "author": "Nena", + "url": "https://open.spotify.com/track/7p8HVe22aGW1XtO1hoDHGo", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "76f7945f-e677-4297-a98a-708314f92de8": { + "name": "Kanikuli", + "author": "Unknown", + "url": "https://www.youtube.com/watch?v=GNMiDZTL7jo", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "101166d0-1b7c-4d1c-b0ce-35b9a89b0822": { + "name": "Nes as tik vejas", + "author": "SEL", + "url": "https://youtu.be/acMG37IZ6z8", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "457bc1f5-f804-4665-a595-8e56a6558d1d": { + "name": "Sombrero", + "author": "Kastanenda", + "url": "https://www.youtube.com/watch?v=3Z3_4TknCfQ", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "9ef33d55-972d-490c-95c6-bf046bf4f979": { + "name": "MONEY ON THE DASH", + "author": "Unknown", + "url": "https://open.spotify.com/track/6nVEV8CIU4dw12oVZbKJtl", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "eb08806a-5fe3-46d7-a989-89f6a55187cc": { + "name": "Tailwhip (Lewii Edit)", + "author": "Men I Trust", + "url": "https://www.youtube.com/watch?v=XhyM-JUWwWQ", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "ee1e8d12-75ac-43f7-bf85-a1b69eb66e86": { + "name": "Vanished", + "author": "Crystal Castles", + "url": "https://open.spotify.com/track/3gGMsx3jxYKfhXq8LMj1tz", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "4f368ef5-08d0-4d1f-b8ba-a34ee9fc6aa2": { + "name": "Blizgantys Naikai", + "author": "SADBOY", + "url": "https://www.youtube.com/watch?v=p5KsYJGcfOM", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "ae2c4c10-4fac-4d80-a114-81adf209c6a1": { + "name": "Kaip Diena", + "author": "morre", + "url": "https://www.youtube.com/watch?v=6LDgLWCQSSM", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "2374179d-d6a8-41b9-9cac-21147303fc8e": { + "name": "Nebenoriu Laukt", + "author": "Dzordana Butkute", + "url": "https://www.youtube.com/watch?v=_AozFrAqNMk", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "d286a3a7-ab7b-488c-9c68-b7521e290c5e": { + "name": "Bossa Nova (Lewii Edit)", + "author": "Billie Eilish", + "url": "https://www.youtube.com/watch?v=gNawHj2NCxA", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "a6a20f00-cbf9-4506-9655-d6fd27944fea": { + "name": "Rhodes Trip", + "author": "THEOS", + "url": "https://www.youtube.com/watch?v=m7guRO0Uz_c", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "518e23e8-72df-42de-a918-6a9a197deb9a": { + "name": "Whiskey, Cola i Tequila", + "author": "Maco Mamuko", + "url": "https://www.youtube.com/watch?v=aBrN0k0Phtc", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "9866acdd-97ee-4e19-ba20-a64caa9b02ee": { + "name": "Where'd All the Time Go?", + "author": "Dr. Dog", + "url": "https://open.spotify.com/track/0UV5zxRMz6AO4ZwUOZNIKI", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "a59cb678-f229-43cf-b438-4ce53b7264ae": { + "name": "R1", + "author": "NL", + "url": "https://www.youtube.com/watch?v=hSgav4fYnZ8", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "f5a31a44-fc62-4cce-b65e-05e4085864fe": { + "name": "End of Beginning", + "author": "Djo", + "url": "https://open.spotify.com/track/3qhlB30KknSejmIvZZLjOD", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "d617c8c2-6237-40c4-8b47-b612a93c3689": { + "name": "vse shto nas ne Ubivaet", + "author": "Pimp Schwab", + "url": "https://www.youtube.com/watch?v=NTEXFyUE9Ww", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "b23f9b7f-1668-43f0-a1bd-9471759db18f": { + "name": "Juda Tavo rankos", + "author": "Elektra", + "url": "https://www.youtube.com/watch?v=k2RuDoudnOE", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "41a8d7c8-4b75-46f6-9940-7f0b8f5f5feb": { + "name": "Beggin' (Techno)", + "author": "Unknown", + "url": "https://www.youtube.com/watch?v=tXPs1FwW6lk", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "c393d1a6-b265-4a73-a7bd-d33667b08445": { + "name": "Kauniete", + "author": "DJ Dalgis", + "url": "https://www.youtube.com/watch?v=b3xPE9Iyuzc", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "bb16708f-0cd7-4918-8014-d374d68acbd2": { + "name": "Not Allowed", + "author": "TV Girl", + "url": "https://open.spotify.com/track/3IznIgmXtrUaoPWpQTy5jB", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "2b33d0b1-aecb-4ff9-841a-3a7b2861f28d": { + "name": "Degtine", + "author": "Grupiokai", + "url": "https://www.youtube.com/watch?v=8SqbG2VmEFw", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "9fabb799-f6aa-45a0-93b7-8cb08ab8f0a8": { + "name": "16 metu", + "author": "69 Danguje", + "url": "https://www.youtube.com/watch?v=nwjoqPcUPrw", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "4e903bfb-e9bf-49dc-a299-e08949ab78f9": { + "name": "DANCE", + "author": "ROMANCEPLANET", + "url": "https://www.youtube.com/watch?v=ircOfMb4gEw", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "1e77552d-702f-4c61-8e9f-bd02bbafe434": { + "name": "Morning Sex (Mochakk Remix)", + "author": "Ralph Castelli", + "url": "https://www.youtube.com/watch?v=6bCwJ_TIDG4", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "47001462-76c8-4aee-8ed4-65242600f840": { + "name": "Fireball", + "author": "Pitbul", + "url": "https://www.youtube.com/watch?v=HMqgVXSvwGo", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "aa07efec-2738-46ff-aeff-9f571916bbdc": { + "name": "Charlie's Inferno", + "author": "That Handsome Devil", + "url": "https://www.youtube.com/watch?v=HkSUnEiSVYM", + "source_type": "Youtube", + "icon_type": "None", + "genres": [], + "length": 0 + }, + "858d8645-8637-4d3f-b4b7-c9c75743d90a": { + "name": "Dviratukas", + "author": "Eugenijus Ostapenko", + "url": "https://www.youtube.com/watch?v=ILFHZQK33Mw", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "78d3766c-7d79-43a1-aa37-f680cfd253e0": { + "name": "Perfect remix 1991", + "author": "Mason", + "url": "https://open.spotify.com/track/1VKWQgq0g2uKtgNfL0ceNM?si=b3f1dc504ddb41ed", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "eaf1cc63-3eb6-4d86-a986-e8129fff7fcb": { + "name": "Zalia Siera", + "author": "DJ Dalgis", + "url": "https://www.youtube.com/watch?v=nfentq_pez4", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "2b19ae9f-2321-41fc-8a1f-2bb4c2975380": { + "name": "Malunas Prie Kelio", + "author": "VainHouse", + "url": "https://www.youtube.com/watch?v=bbwuNjDXCiM", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "0c77785e-7149-45a7-84a1-a9c8ccaa9f7f": { + "name": "Lyja", + "author": "SEL", + "url": "https://www.youtube.com/watch?v=KL6JBWnXCxw", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "f1878fda-ecec-4303-a6df-dc6adf1ea3c0": { + "name": "Juodas Garvezys (Remix)", + "author": "Unknown", + "url": "https://www.youtube.com/watch?v=D-7qQbXHSAw", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "59c20651-6ffe-493d-886b-ccd8b7fe6dee": { + "name": "EVERYTHING WHAT", + "author": "Unknown", + "url": "https://www.youtube.com/watch?v=Gjdsq4kc5cA", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "bcb9af16-7bdb-458a-b092-42225abf2645": { + "name": "LEDUKAI", + "author": "Depresinis feat. Deivas", + "url": "https://www.youtube.com/watch?v=R2-MtpkKgGI", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "4c849092-b6c4-450c-b69c-304e54f63611": { + "name": "Deginam", + "author": "SADBOY", + "url": "https://www.youtube.com/watch?v=w3R0Aq1EGXg", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "0b907d17-e3f9-4dbb-9c2d-e10327316f6e": { + "name": "UZ MUS IR JUS", + "author": "Mr.Bullet", + "url": "https://www.youtube.com/watch?v=85q_7jXEgH8", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "fc3f499b-2c33-41d0-b79c-ca68486b2a4d": { + "name": "Blaue Augen", + "author": "08 Blumchen", + "url": "https://www.youtube.com/watch?v=mE4PZcUfiwE", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "4a7b1853-7529-498d-addf-25e894a37ccf": { + "name": "Temptation", + "author": "Arash", + "url": "https://www.youtube.com/watch?v=6X3ZJh762-I", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "2e9ef729-1560-446c-af6a-8a9d4c43ac9a": { + "name": "Big Sis", + "author": "SALES", + "url": "https://open.spotify.com/track/0ARp9mXXpPflIwehy25kCa", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "d563619a-344e-41cf-99d1-5a52214ada49": { + "name": "Sports", + "author": "Beach Bunny", + "url": "https://open.spotify.com/track/77G0k1La0c5Dw8bAFANcyp", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "02d90830-7b5f-430f-b82c-f45998862e81": { + "name": "Juodas Golfas", + "author": "NL", + "url": "https://www.youtube.com/watch?v=f2-ZmElSvPc", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "22f18d88-fb39-4cec-98be-02d4ebe3a6ee": { + "name": "Party maker", + "author": "MUTA", + "url": "https://www.youtube.com/watch?v=LT9VNK1aCXY", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "f3edb436-bf04-4ad5-ad45-684a601846c3": { + "name": "We are the winners", + "author": "LT United", + "url": "https://www.youtube.com/watch?v=DBAdOlQPbwg", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "017e1086-7ca7-4788-834d-5490e0cf8276": { + "name": "Mersas", + "author": "Tweaxx", + "url": "https://www.youtube.com/watch?v=7ljAzgALPdA", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "402a9066-127a-4a62-b711-50e979abbd51": { + "name": "Naktinis Tusas", + "author": "Dove", + "url": "https://www.youtube.com/watch?v=pz-HEAwFEnk", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "50186034-e8b4-4778-81e3-ab327e54dbff": { + "name": "We Are The People", + "author": "Empire Of The Sun, southstar", + "url": "https://www.youtube.com/watch?v=qguEGR5BK2k", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "5015106c-abcb-45c2-aed3-1f28674f92f6": { + "name": "Dance For Me", + "author": "Unknown", + "url": "https://www.youtube.com/watch?v=5DTSvGO_944", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "60214f0e-9a37-49b4-92bf-b7b548e501ad": { + "name": "Uzmerkiu akis", + "author": "SEL", + "url": "https://youtu.be/SdWj06XRZms?si=9TNGzjK9ITom-jaD", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "8fcad64e-bb63-414b-9cad-243f1f4c4293": { + "name": "FALL FROM THE SKY", + "author": "ROMANCEPLANET", + "url": "https://www.youtube.com/watch?v=HMhzxzXBisw", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "81426b49-3511-4e48-be21-3c24acba0fb9": { + "name": "Kernkraft 400", + "author": "Zombie Nation", + "url": "https://www.youtube.com/watch?v=z5LW07FTJbI", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "d01635a4-1a28-4d86-a524-9876eb3094de": { + "name": "VAIKAI PO LELIJOM (REMIX)", + "author": "Unknown", + "url": "https://www.youtube.com/watch?v=k1amBbsAZuo", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "dc6c36b0-f595-457f-8fc3-641710b0e3b9": { + "name": "I Pajuri", + "author": "Mercy Dance", + "url": "https://www.youtube.com/watch?v=RPpkMh47l9w", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "bd85a9d7-1fb6-4154-a290-e5137590e419": { + "name": "I gamta", + "author": "Andzikas", + "url": "https://www.youtube.com/watch?v=UyLdjC-hihM", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "e71a61d4-b54a-47d1-b0ad-db6695bd0739": { + "name": "Hey Lover!", + "author": "Wabie", + "url": "https://open.spotify.com/track/7rC3P7tpWriaC4hYWKwGQd", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "22565196-5757-4767-8f1f-f1c9b8a87dcc": { + "name": "I WAS MADE FOR LOVIN' YOU (TECHNO)", + "author": "Unknown", + "url": "https://www.youtube.com/watch?v=asVznhccYao", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "8858c7a1-ea6d-409b-9fc3-7256a39d4d8b": { + "name": "PENKTADIENIS", + "author": "NIERKA", + "url": "https://www.youtube.com/watch?v=h3TuZj_OAf0", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "ca765223-e4e6-4b5d-8928-919c3f491b43": { + "name": "Kaifuok", + "author": "SADBOY", + "url": "https://www.youtube.com/watch?v=vclryWgfy8I", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "3453b523-e1f0-49d3-b60b-5ba063b6c26d": { + "name": "The Love Parade ( Bounce Invaderz )", + "author": "Unknown", + "url": "https://www.youtube.com/watch?v=xogT6KBWjCU3", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "a950fac9-3b5f-4215-8a49-7680fd5b90bf": { + "name": "Gyvenu", + "author": "69 Danguje", + "url": "https://www.youtube.com/watch?v=HMXlhmAoux4", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "a1ab9370-70bc-488d-a78b-5cdc09c82f73": { + "name": "Trys Trys Trys", + "author": "Riaukenzo", + "url": "https://www.youtube.com/watch?v=qJv6GRQCnCk", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "9d93859c-dae3-4c03-8f8d-d4f6bc0e287e": { + "name": "Jealous", + "author": "Eyedress", + "url": "https://open.spotify.com/track/1aXV8GrmQLvgoFtBPERP7E", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "70a80d91-581e-4599-81e6-d047f28e9068": { + "name": "Margarita", + "author": "Rondo", + "url": "https://www.youtube.com/watch?v=rF4w-Rxsiv4", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "fa7d62b1-2f9a-4499-b07b-ac3127c0f69f": { + "name": "Mano Skonis Sokolado (Matuze & Arnisxd Remix)", + "author": "Sokoledas", + "url": "https://soundcloud.com/matuze/sokoledas-mano-skonis-sokolado-matuze-arnisxd-remix", + "source_type": "Soundcloud", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "7da79c32-9eda-4897-be69-69fb39437404": { + "name": "Tricky Disco", + "author": "DR. VODKA", + "url": "https://www.youtube.com/watch?v=IknAUhl3i2o", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "0e969066-b7f9-4e60-a24f-989aad28dfac": { + "name": "Svajoklis", + "author": "Vairas", + "url": "https://www.youtube.com/watch?v=hs8_KTV0Vrw", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "7b680328-e576-4185-a5da-3c37de98ca42": { + "name": "cabin fever", + "author": "re6ce", + "url": "https://open.spotify.com/track/3c3oUMxOr2cVFBY6V3v08C", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "0e1d36ed-d07d-48c0-a101-1bf1ac6d7a26": { + "name": "Be taves", + "author": "Funky", + "url": "https://www.youtube.com/watch?v=heTDrDukLWU", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "639dc5af-b3e6-4d38-a003-80deac01d326": { + "name": "Myliu kina", + "author": "Zas", + "url": "https://www.youtube.com/watch?v=ImFrfmi-qT8", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "27d61e87-deec-4e4c-8015-ad8b691eea40": { + "name": "Klaipeda On Top", + "author": "Deivas", + "url": "https://www.youtube.com/watch?v=g_h2M3e2OYU", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "8bf09666-9aba-4c71-a58a-a64200d49f9e": { + "name": "Cloud 9", + "author": "Beach Bunny", + "url": "https://open.spotify.com/track/6vFsBXYczYsP0H3lgunZOm", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "0491fd9f-149d-4e70-bc5c-0fae9a21d9b0": { + "name": "Rozovoe vino", + "author": "Eldzej and Feduk", + "url": "https://www.youtube.com/watch?v=S9oXj3a4gZ4", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "0c5a22fc-2a61-4171-a5b9-f24da0c71466": { + "name": "As ziuriu i tave pasauli", + "author": "SEL", + "url": "https://youtu.be/_SPDjl80kKw", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "c72768c0-1f2e-4992-b66f-e569c572435a": { + "name": "Nezinau, Kodel...", + "author": "Unknown", + "url": "https://www.youtube.com/watch?v=A-i2CkCnPoc", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "cd72e9db-aaa4-485e-b3a5-7fbeed2cff36": { + "name": "I.M.P Jingle (From \"Helluva Boss\")", + "author": "Geek Music", + "url": "https://open.spotify.com/track/5x0bvS385Ata1irjLMyLTn", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "bc5fe406-040b-4c46-82ce-bb4505b81947": { + "name": "i like the way you kiss me", + "author": "Artemas", + "url": "https://www.youtube.com/watch?v=ODDRRXMi22E", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "be09f147-cda5-4e5f-ac29-eef9c3a7414f": { + "name": "Blue Monday", + "author": "MOGUAI, Tim Hox, Iggy", + "url": "https://open.spotify.com/track/4vAP9OY2Ci79fUCuc9EBdD", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "8e82aa7c-a9e0-42ee-a845-6ba7d3439452": { + "name": "Apzavai", + "author": "Vaidas Baumila", + "url": "https://www.youtube.com/watch?v=H8uGi4ZMgHA", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "2645c0f2-fade-489a-87ad-261d5d983ef6": { + "name": "Bad Boys", + "author": "Unknown", + "url": "https://www.youtube.com/watch?v=NTC7RD8xzCY", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "34e3c90b-7763-4154-9035-367e22ed7d75": { + "name": "Robinzonas", + "author": "Vitalija Katunskyte", + "url": "https://www.youtube.com/watch?v=erDHG-QpbPY", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "e37c6cb6-ad8e-43a7-83d1-8b795db8aa1c": { + "name": "Harness Your Hopes", + "author": "Pavement", + "url": "https://open.spotify.com/track/4vsoWZcvtvSsE0OiVvDDvX", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "92561031-92ae-471a-b154-8519c715011d": { + "name": "On The Rob", + "author": "Cheap Dirty Horse", + "url": "https://open.spotify.com/track/2kZ2fD3ohaGhDHMBTAppto", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "8c641f7f-e151-4abc-932c-a9895823a278": { + "name": "Nevaidink", + "author": "SixthBoi", + "url": "https://www.youtube.com/watch?v=nOTNnnrqTII", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "615d63ee-51aa-4ac2-b826-9a41f59b8622": { + "name": "I Love It", + "author": "Icona Pop", + "url": "https://www.youtube.com/watch?v=UxxajLWwzqY", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "dfc0782c-33f2-414d-9b56-76a77902bcc5": { + "name": "Baliavojam", + "author": "16Hz", + "url": "https://www.youtube.com/watch?v=Ia-qERX8WLs", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "ec3edf2d-1e19-4c71-8f5c-e53d9cd06c3b": { + "name": "Cigarette Daydreams", + "author": "Cage The Elephant", + "url": "https://open.spotify.com/track/6jHvX8ZnHKC1PnrPMJ0Emt", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "eadbd827-0f71-4401-97bd-d11c365c3243": { + "name": "I Only See Things I Dont Have", + "author": "Fidde", + "url": "https://www.youtube.com/watch?v=vX_Ye_ZzI-Y", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "0ee56450-2942-4805-9f08-b49652472258": { + "name": "Tricky Disco", + "author": "Unknown", + "url": "https://www.youtube.com/watch?v=t78qVdbAiXw", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "83b50be2-c286-4dcc-9e7f-cacf5e4031fe": { + "name": "Not Fair", + "author": "Lily Allen", + "url": "https://www.youtube.com/watch?v=WON_YIbeLis", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "080d60fb-bdf1-40f3-8b81-967c5ea2fe44": { + "name": "moi marmeladni (paprobui mua mua)", + "author": "Katja lel", + "url": "https://www.youtube.com/watch?v=0JMdXFHo5SY", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "91629850-33e2-4e18-8c37-6eafdfcde3f4": { + "name": "Give It To Me", + "author": "Unknown", + "url": "https://www.youtube.com/watch?v=upQe8EeSyZU", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "c332ce2b-6b1c-4979-9977-dc00aa6e710b": { + "name": "TU ESI MELAGIS (Techno Extended)", + "author": "Radvis", + "url": "https://www.youtube.com/watch?v=kmvvP7GW_bw", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "8dca8d6c-3388-4133-b773-79b9f076e467": { + "name": "0,7", + "author": "Depresinis feat. Deivas", + "url": "https://www.youtube.com/watch?v=rjwFjBgTzAA", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "877c24e4-c0c0-4e9c-a553-221e381c8a00": { + "name": "Stumblin' In", + "author": "CYRIL", + "url": "https://open.spotify.com/track/0h3Xy4V4apMraB5NuM8U7Z", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "2f179aab-c51b-4501-b5d1-8a2e51b19a80": { + "name": "Applause", + "author": "Nicolas Julian", + "url": "https://www.youtube.com/watch?v=9qHLELnq1B0", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "5c2ee27e-d564-404a-8259-87d1d336f106": { + "name": "Money", + "author": "The Drums", + "url": "https://open.spotify.com/track/3VIJBrMpvimHEw5wtPh2wB", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "47f2a63e-e9eb-48df-a61b-dbcdfa3aaf35": { + "name": "Everlong", + "author": "Foo Fighters", + "url": "https://open.spotify.com/track/5UWwZ5lm5PKu6eKsHAGxOk", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "d71c0e55-5d40-4045-853e-b32da713c0b8": { + "name": "Lietuva (Nebelinksmas musu kaimas)", + "author": "Vytautas siskauskas", + "url": "https://www.youtube.com/watch?v=31UkGzde14c", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "192a8655-7dfc-4c4b-b351-87c75cbbe048": { + "name": "It Wasn't Me", + "author": "Shaggy", + "url": "https://www.youtube.com/watch?v=ssVj50ombaM", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "4eafd817-d75a-451e-b6b4-38ef29e66fdf": { + "name": "Ne, nereikia asaru", + "author": "Rytis Cicinas", + "url": "https://www.youtube.com/watch?v=48GSg1q2kPE", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "95a3350c-c62f-4543-8cfe-6c512861b229": { + "name": "Ryk Zuvedra ryk", + "author": "Zilviokas", + "url": "https://www.youtube.com/watch?v=eN6BOI7UlSE", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "56684f28-ff1a-4f65-a585-e9ea532babb2": { + "name": "AUDI", + "author": "MC ENDRAY", + "url": "https://www.youtube.com/watch?v=oIjNoMGEuRg", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "3b2573d4-2e1b-4446-a377-5fcb2b0a70c5": { + "name": "18 mne uze", + "author": "Ruki Verch", + "url": "https://www.youtube.com/watch?v=Hxab_Sr132o", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "20945b3f-e9d6-4023-9a97-4a04424cc8a3": { + "name": "Basket Case", + "author": "Green Day", + "url": "https://www.youtube.com/watch?v=wZ8eZRxFA-0", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "9d7a0837-04d4-40f7-92dc-48c7db70be51": { + "name": "As Judu", + "author": "Adomas Vysniauskas", + "url": "https://www.youtube.com/watch?v=dMm16TzZrjg", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "e9495391-8a6c-4942-9dc6-09b764f9d1e9": { + "name": "Zalias Pasas", + "author": "Zas", + "url": "https://www.youtube.com/watch?v=SZA7IjlCfyI", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "9e6095bb-8b05-40eb-b5d3-b6410ac65171": { + "name": "C'est Beau La Bourgeoisie", + "author": "Discobitch", + "url": "https://www.youtube.com/watch?v=RCeQN2aEWxo", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "e53d24bf-930d-490a-b41b-9b3382e24e3c": { + "name": "Truputi", + "author": "Ganja", + "url": "https://www.youtube.com/watch?v=Pxve7CwiCHM", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "b0732ead-9a8c-4537-b98a-a4618d33959f": { + "name": "O Mazuti", + "author": "Depresinis, Jypas", + "url": "https://www.youtube.com/watch?v=4t_DPbe2r3M", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "90ae639e-0214-4a8e-b582-4949674ffaa2": { + "name": "Coco Jumbo", + "author": "Mr President", + "url": "https://www.youtube.com/watch?v=cOrc37wNUqU", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "7832d70f-2af3-417f-88dd-e193622ac599": { + "name": "DZIEWCZYNO Z TIKTOKA", + "author": "DR. VODKA", + "url": "https://www.youtube.com/watch?v=HLbw1WQt64o", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "ea41c37c-7b62-4fd6-9fec-650e94d184f2": { + "name": "tipo daina", + "author": "Tipo Grupe", + "url": "https://www.youtube.com/watch?v=PTIOaSjEgIU", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "7d232736-f977-4645-bd64-106e94f91bb0": { + "name": "Judam Lietuvoj", + "author": "Unknown", + "url": "https://www.youtube.com/watch?v=WDzWSEgSy5U", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "c7867d88-60f2-483b-b435-883d4ff5b2f9": { + "name": "Alien Blues", + "author": "Vundabar", + "url": "https://open.spotify.com/track/11iIikXxC6NP0Ma8vMD27x", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "407155fd-3174-4778-ae93-bb01b7518f9f": { + "name": "Cia Mano Rojus", + "author": "Robertas Kupstas", + "url": "https://www.youtube.com/watch?v=xij_YeEInr8", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "484b9560-731b-447d-9e7f-3d32eb68b05f": { + "name": "Freed from Desire", + "author": "Drenchill", + "url": "https://www.youtube.com/watch?v=6b6FBneAENQ", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "2c650e29-9f87-4253-8074-146f3653051d": { + "name": "Satisfaction", + "author": "Benny Benassi", + "url": "https://www.youtube.com/watch?v=a0fkNdPiIL4", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "df2e369f-2fee-49e5-b52c-33f73c34ffb2": { + "name": "Autostrada Vilnius", + "author": "16Hz", + "url": "https://www.youtube.com/watch?v=ANS2TSegr40", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "6c3f2503-0160-4c42-8b17-25ff402f3fa7": { + "name": "Visky Kola karaleva trans pola", + "author": "Dzaro and hansa", + "url": "https://www.youtube.com/watch?v=fflrMvZ2HtA", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "870502f1-e3a9-419b-9ba6-d8100d1198a5": { + "name": "Is Leto Leidziasi Saule", + "author": "Jovani, Karaliska Erdve", + "url": "https://www.youtube.com/watch?v=VqSu8iG1_DE", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "131ab436-869b-4b3b-8ce4-3b5087d3461f": { + "name": "1.9 TDI", + "author": "Grupe MX", + "url": "https://www.youtube.com/watch?v=8FBr5GQXsI8", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "85098bbc-86fa-4da4-b342-d2a512738060": { + "name": "Topolini puh", + "author": "Unknown", + "url": "https://www.youtube.com/watch?v=UUryvYF8tUs", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "7f2b2809-1b38-45b5-876c-cbdb42b26bdf": { + "name": "Volkswagina", + "author": "Depresinis", + "url": "https://www.youtube.com/watch?v=1lZR1VKsQHo", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "7ed02ac9-cb84-4a34-870d-56b226f0a6be": { + "name": "Always Forever", + "author": "Cults", + "url": "https://open.spotify.com/track/2enPRFda84VE2wtI8c86Uf", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "190a5577-124a-4232-9e6f-1d0a50f4d881": { + "name": "Cheri cheri lady", + "author": "Unknown", + "url": "https://www.youtube.com/watch?v=lrIKt5uDWZo", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "3d543d58-e33d-4158-9956-049309baa35c": { + "name": "Movin' Out (Anthony's Song)", + "author": "Billy Joel", + "url": "https://open.spotify.com/track/16GUMo6u3D2qo9a19AkYct", + "source_type": "Spotify", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "83ff90a9-4a19-4a66-a452-c2bafdfb884b": { + "name": "You're My Heart, You're My Soul", + "author": "Modern Talking", + "url": "https://www.youtube.com/watch?v=4kHl4FoK1Ys", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "88fe04aa-a7be-4f6c-b32f-d3d25e58bbf8": { + "name": "Because I Got High", + "author": "Afroman", + "url": "https://www.youtube.com/watch?v=WeYsTmIzjkw", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 + }, + "009b9458-3205-4b13-9c65-03f16fea2293": { + "name": "Whiskey Cola Lietuviskai (sultys degtinele) remix", + "author": "L1GHT CASH", + "url": "https://www.youtube.com/watch?v=YVaqDaf1KXU", + "source_type": "Youtube", + "icon_type": "FromSource", + "genres": [], + "length": 0 } }, "playlists": { - "8e806ac3-63d9-4366-95d6-04f5a0aae31e": { - "name": "rusiskos", - "author": "Unknown", - "songs": [ - "76f7945f-e677-4297-a98a-708314f92de8", - "0491fd9f-149d-4e70-bc5c-0fae9a21d9b0", - "4a7b1853-7529-498d-addf-25e894a37ccf", - "6c3f2503-0160-4c42-8b17-25ff402f3fa7", - "3b2573d4-2e1b-4446-a377-5fcb2b0a70c5", - "03f406b5-d5e9-4d22-b9bc-d0b36354400a", - "85098bbc-86fa-4da4-b342-d2a512738060", - "d617c8c2-6237-40c4-8b47-b612a93c3689", - "080d60fb-bdf1-40f3-8b81-967c5ea2fe44" - ] - }, - "c3ebcdd5-82b6-49b3-a340-dc786a66eee6": { - "name": "reggea", - "author": "Unknown", - "songs": [ - "192a8655-7dfc-4c4b-b351-87c75cbbe048" - ] - }, - "a37e3c7c-584d-4803-981b-5be9244dd7c1": { - "name": "rock", - "author": "Unknown", - "songs": [ - "d8423579-1225-4865-9955-149e6878b59d" - ] - }, - "cb15d471-58bc-4d5a-9e3c-b13e1433818c": { - "name": "pop", - "author": "Unknown", - "songs": [ - "83ff90a9-4a19-4a66-a452-c2bafdfb884b", - "f3edb436-bf04-4ad5-ad45-684a601846c3", - "20945b3f-e9d6-4023-9a97-4a04424cc8a3", - "90ae639e-0214-4a8e-b582-4949674ffaa2", - "615d63ee-51aa-4ac2-b826-9a41f59b8622", - "190a5577-124a-4232-9e6f-1d0a50f4d881", - "47001462-76c8-4aee-8ed4-65242600f840" - ] - }, - "4230f218-7de4-463c-a42f-ad05c745de5a": { - "name": "techno", - "author": "Unknown", - "songs": [ - "3453b523-e1f0-49d3-b60b-5ba063b6c26d", - "6bfe21f8-b6e5-409b-b6cb-a5692f6dfeeb", - "41a8d7c8-4b75-46f6-9940-7f0b8f5f5feb", - "fc3f499b-2c33-41d0-b79c-ca68486b2a4d", - "22f18d88-fb39-4cec-98be-02d4ebe3a6ee", - "4a56c71c-70f0-45e7-a9b8-2304d41e1877", - "5015106c-abcb-45c2-aed3-1f28674f92f6", - "2f179aab-c51b-4501-b5d1-8a2e51b19a80", - "83b50be2-c286-4dcc-9e7f-cacf5e4031fe", - "22565196-5757-4767-8f1f-f1c9b8a87dcc", - "83808446-bd43-4140-86ff-853fea897a89", - "50186034-e8b4-4778-81e3-ab327e54dbff", - "afdc69fa-c2ee-4dee-9794-e3166fc9dd20", - "91629850-33e2-4e18-8c37-6eafdfcde3f4", - "d8e93863-6102-4cda-a0b2-3728d20c9cf8", - "cec368bd-6b4c-4c89-9eeb-1b88bed0efc3" - ] - }, - "7d7c0020-7daa-4d85-8aa9-311f24eeb702": { - "name": "lietuviskos/sel", - "author": "Unknown", - "songs": [ - "60214f0e-9a37-49b4-92bf-b7b548e501ad", - "e1cb8b00-713b-4a0e-bc61-dbf2d2596fcf", - "abd6a036-f17a-4a6a-8420-2cc3e7e4a181", - "a0bd5ffe-4be8-498e-8f43-c5a9505a4872", - "201c6680-7dcf-4d75-8bdc-76ff9a715167", - "18c2b9bc-6403-4a67-94bd-1e9f5413d83b", - "c374f3c2-b498-49b3-88c5-a2e6e741e1e8", - "0c5a22fc-2a61-4171-a5b9-f24da0c71466", - "0c77785e-7149-45a7-84a1-a9c8ccaa9f7f", - "98b04764-39cc-4c82-a2e2-420dd85573ca", - "101166d0-1b7c-4d1c-b0ce-35b9a89b0822" - ] - }, - "8c9d2cf1-6f0b-4ea9-993a-c3193867a914": { - "name": "rave", - "author": "Unknown", - "songs": [ - "59c20651-6ffe-493d-886b-ccd8b7fe6dee", - "78d3766c-7d79-43a1-aa37-f680cfd253e0", - "7da79c32-9eda-4897-be69-69fb39437404", - "0ee56450-2942-4805-9f08-b49652472258" - ] - }, - "a906d80f-2028-407e-8263-6eacb53325a2": { - "name": "lietuviskos/rave", - "author": "Unknown", - "songs": [ - "2b19ae9f-2321-41fc-8a1f-2bb4c2975380", - "fa7d62b1-2f9a-4499-b07b-ac3127c0f69f" - ] - }, - "5f2e4043-cb32-4e90-9fb6-69f0466d6398": { - "name": "house", - "author": "Unknown", - "songs": [ - "80a169ba-f711-408c-834c-744bac3660ca", - "b0c0d44c-86ca-4b80-a081-734a4178c870", - "eadbd827-0f71-4401-97bd-d11c365c3243", - "eb08806a-5fe3-46d7-a989-89f6a55187cc", - "6bc8cd16-722b-42e4-9824-a1de9c67029f", - "1e77552d-702f-4c61-8e9f-bd02bbafe434", - "35877af8-65ad-4d85-9f18-93b98fd3ebd4", - "a6a20f00-cbf9-4506-9655-d6fd27944fea", - "d286a3a7-ab7b-488c-9c68-b7521e290c5e", - "f81f8f9d-6c56-4ae3-8f5f-28c04632d3b5" - ] - }, - "ff11b5bc-6bf7-4cdd-a47a-023dcc68a8c3": { - "name": "alt", - "author": "Unknown", - "songs": [ - "4e903bfb-e9bf-49dc-a299-e08949ab78f9", - "bc5fe406-040b-4c46-82ce-bb4505b81947", - "8fcad64e-bb63-414b-9cad-243f1f4c4293", - "795b22ae-d19e-4571-a5d7-fba5a66d5b6e" - ] - }, "27afdb2f-2672-43f1-8a55-b7c6bbb7927a": { "name": "lietuviskos", "author": "Unknown", @@ -1501,31 +1753,49 @@ "eaf1cc63-3eb6-4d86-a986-e8129fff7fcb" ] }, - "2391911d-2d2c-4c33-b8f5-1a6e543512cc": { - "name": "noclue", + "4230f218-7de4-463c-a42f-ad05c745de5a": { + "name": "techno", "author": "Unknown", "songs": [ - "9e6095bb-8b05-40eb-b5d3-b6410ac65171", - "7832d70f-2af3-417f-88dd-e193622ac599", - "518e23e8-72df-42de-a918-6a9a197deb9a", - "2645c0f2-fade-489a-87ad-261d5d983ef6" + "3453b523-e1f0-49d3-b60b-5ba063b6c26d", + "6bfe21f8-b6e5-409b-b6cb-a5692f6dfeeb", + "41a8d7c8-4b75-46f6-9940-7f0b8f5f5feb", + "fc3f499b-2c33-41d0-b79c-ca68486b2a4d", + "22f18d88-fb39-4cec-98be-02d4ebe3a6ee", + "4a56c71c-70f0-45e7-a9b8-2304d41e1877", + "5015106c-abcb-45c2-aed3-1f28674f92f6", + "2f179aab-c51b-4501-b5d1-8a2e51b19a80", + "83b50be2-c286-4dcc-9e7f-cacf5e4031fe", + "22565196-5757-4767-8f1f-f1c9b8a87dcc", + "83808446-bd43-4140-86ff-853fea897a89", + "50186034-e8b4-4778-81e3-ab327e54dbff", + "afdc69fa-c2ee-4dee-9794-e3166fc9dd20", + "91629850-33e2-4e18-8c37-6eafdfcde3f4", + "d8e93863-6102-4cda-a0b2-3728d20c9cf8", + "cec368bd-6b4c-4c89-9eeb-1b88bed0efc3" ] }, - "ba68f47d-384d-4808-a69d-48c6a85be479": { - "name": "electronic", + "8c9d2cf1-6f0b-4ea9-993a-c3193867a914": { + "name": "rave", "author": "Unknown", "songs": [ - "81426b49-3511-4e48-be21-3c24acba0fb9", - "2c650e29-9f87-4253-8074-146f3653051d", - "9ef33d55-972d-490c-95c6-bf046bf4f979" + "59c20651-6ffe-493d-886b-ccd8b7fe6dee", + "78d3766c-7d79-43a1-aa37-f680cfd253e0", + "7da79c32-9eda-4897-be69-69fb39437404", + "0ee56450-2942-4805-9f08-b49652472258" ] }, - "e4203363-48dd-430c-8a63-f997ebe7e2bc": { - "name": "hip-hop", + "cb15d471-58bc-4d5a-9e3c-b13e1433818c": { + "name": "pop", "author": "Unknown", "songs": [ - "88fe04aa-a7be-4f6c-b32f-d3d25e58bbf8", - "484b9560-731b-447d-9e7f-3d32eb68b05f" + "83ff90a9-4a19-4a66-a452-c2bafdfb884b", + "f3edb436-bf04-4ad5-ad45-684a601846c3", + "20945b3f-e9d6-4023-9a97-4a04424cc8a3", + "90ae639e-0214-4a8e-b582-4949674ffaa2", + "615d63ee-51aa-4ac2-b826-9a41f59b8622", + "190a5577-124a-4232-9e6f-1d0a50f4d881", + "47001462-76c8-4aee-8ed4-65242600f840" ] }, "b633b0c7-8151-4b5c-bf18-a0b8d2f85f27": { @@ -1563,6 +1833,113 @@ "6895e921-91f2-4713-b604-c2cdd9f3f1c2", "8bf09666-9aba-4c71-a58a-a64200d49f9e" ] + }, + "8e806ac3-63d9-4366-95d6-04f5a0aae31e": { + "name": "rusiskos", + "author": "Unknown", + "songs": [ + "76f7945f-e677-4297-a98a-708314f92de8", + "0491fd9f-149d-4e70-bc5c-0fae9a21d9b0", + "4a7b1853-7529-498d-addf-25e894a37ccf", + "6c3f2503-0160-4c42-8b17-25ff402f3fa7", + "3b2573d4-2e1b-4446-a377-5fcb2b0a70c5", + "03f406b5-d5e9-4d22-b9bc-d0b36354400a", + "85098bbc-86fa-4da4-b342-d2a512738060", + "d617c8c2-6237-40c4-8b47-b612a93c3689", + "080d60fb-bdf1-40f3-8b81-967c5ea2fe44" + ] + }, + "ba68f47d-384d-4808-a69d-48c6a85be479": { + "name": "electronic", + "author": "Unknown", + "songs": [ + "81426b49-3511-4e48-be21-3c24acba0fb9", + "2c650e29-9f87-4253-8074-146f3653051d", + "9ef33d55-972d-490c-95c6-bf046bf4f979" + ] + }, + "ff11b5bc-6bf7-4cdd-a47a-023dcc68a8c3": { + "name": "alt", + "author": "Unknown", + "songs": [ + "4e903bfb-e9bf-49dc-a299-e08949ab78f9", + "bc5fe406-040b-4c46-82ce-bb4505b81947", + "8fcad64e-bb63-414b-9cad-243f1f4c4293", + "795b22ae-d19e-4571-a5d7-fba5a66d5b6e" + ] + }, + "a906d80f-2028-407e-8263-6eacb53325a2": { + "name": "lietuviskos/rave", + "author": "Unknown", + "songs": [ + "2b19ae9f-2321-41fc-8a1f-2bb4c2975380", + "fa7d62b1-2f9a-4499-b07b-ac3127c0f69f" + ] + }, + "7d7c0020-7daa-4d85-8aa9-311f24eeb702": { + "name": "lietuviskos/sel", + "author": "Unknown", + "songs": [ + "60214f0e-9a37-49b4-92bf-b7b548e501ad", + "e1cb8b00-713b-4a0e-bc61-dbf2d2596fcf", + "abd6a036-f17a-4a6a-8420-2cc3e7e4a181", + "a0bd5ffe-4be8-498e-8f43-c5a9505a4872", + "201c6680-7dcf-4d75-8bdc-76ff9a715167", + "18c2b9bc-6403-4a67-94bd-1e9f5413d83b", + "c374f3c2-b498-49b3-88c5-a2e6e741e1e8", + "0c5a22fc-2a61-4171-a5b9-f24da0c71466", + "0c77785e-7149-45a7-84a1-a9c8ccaa9f7f", + "98b04764-39cc-4c82-a2e2-420dd85573ca", + "101166d0-1b7c-4d1c-b0ce-35b9a89b0822" + ] + }, + "a37e3c7c-584d-4803-981b-5be9244dd7c1": { + "name": "rock", + "author": "Unknown", + "songs": [ + "d8423579-1225-4865-9955-149e6878b59d" + ] + }, + "2391911d-2d2c-4c33-b8f5-1a6e543512cc": { + "name": "noclue", + "author": "Unknown", + "songs": [ + "9e6095bb-8b05-40eb-b5d3-b6410ac65171", + "7832d70f-2af3-417f-88dd-e193622ac599", + "518e23e8-72df-42de-a918-6a9a197deb9a", + "2645c0f2-fade-489a-87ad-261d5d983ef6" + ] + }, + "e4203363-48dd-430c-8a63-f997ebe7e2bc": { + "name": "hip-hop", + "author": "Unknown", + "songs": [ + "88fe04aa-a7be-4f6c-b32f-d3d25e58bbf8", + "484b9560-731b-447d-9e7f-3d32eb68b05f" + ] + }, + "c3ebcdd5-82b6-49b3-a340-dc786a66eee6": { + "name": "reggea", + "author": "Unknown", + "songs": [ + "192a8655-7dfc-4c4b-b351-87c75cbbe048" + ] + }, + "5f2e4043-cb32-4e90-9fb6-69f0466d6398": { + "name": "house", + "author": "Unknown", + "songs": [ + "80a169ba-f711-408c-834c-744bac3660ca", + "b0c0d44c-86ca-4b80-a081-734a4178c870", + "eadbd827-0f71-4401-97bd-d11c365c3243", + "eb08806a-5fe3-46d7-a989-89f6a55187cc", + "6bc8cd16-722b-42e4-9824-a1de9c67029f", + "1e77552d-702f-4c61-8e9f-bd02bbafe434", + "35877af8-65ad-4d85-9f18-93b98fd3ebd4", + "a6a20f00-cbf9-4506-9655-d6fd27944fea", + "d286a3a7-ab7b-488c-9c68-b7521e290c5e", + "f81f8f9d-6c56-4ae3-8f5f-28c04632d3b5" + ] } } -} +} \ No newline at end of file diff --git a/xmpd-cache/src/downloader/icon.rs b/xmpd-cache/src/downloader/icon.rs index 72c84fa..12f53b7 100644 --- a/xmpd-cache/src/downloader/icon.rs +++ b/xmpd-cache/src/downloader/icon.rs @@ -30,11 +30,12 @@ impl IconCacheDl { pub fn download(&mut self, sid: uuid::Uuid, song: Song) -> crate::Result<()> { match song.icon_type().clone() { IconType::FromSource => { - let tooling = xmpd_settings::Settings::get()?.tooling.clone(); + let settings = xmpd_settings::Settings::get()?.clone(); + let tooling = settings.tooling.clone(); match song.source_type() { SourceType::Youtube => { self.jobs.insert(sid.clone(), DlStatus::Downloading); - let mut path = xmpd_cliargs::CLIARGS.cache_path(); + let mut path = settings.cache_settings.cache_path.clone(); path.push("icons"); path.push(sid.to_string()); @@ -91,7 +92,7 @@ impl IconCacheDl { anyhow::bail!("Url without extension, cant continue"); }; let ext = ext.to_string_lossy().to_string(); - let mut path = xmpd_cliargs::CLIARGS.cache_path(); + let mut path = xmpd_settings::Settings::get()?.clone().cache_settings.cache_path; path.push("icons"); path.push(sid.to_string()); path.set_extension(ext); diff --git a/xmpd-cache/src/downloader/song.rs b/xmpd-cache/src/downloader/song.rs index 4580ffa..bd3904b 100644 --- a/xmpd-cache/src/downloader/song.rs +++ b/xmpd-cache/src/downloader/song.rs @@ -1,4 +1,5 @@ use std::{collections::HashMap, ffi::OsStr, process::{Command, Stdio}, sync::{Arc, Mutex, MutexGuard}}; +use camino::{Utf8Path, Utf8PathBuf}; use xmpd_manifest::song::{Song, SourceType}; @@ -14,6 +15,12 @@ pub enum SongStatus { Done } +#[cfg(target_family = "windows")] +const PATH_SEP: char = ';'; +#[cfg(target_family = "unix")] +const PATH_SEP: char = ':'; + + #[derive(Debug, Default, Clone)] pub struct SongCacheDl { pub jobs: HashMap, @@ -30,12 +37,15 @@ impl SongCacheDl { pub fn is_job_list_full(&self) -> bool { self.current_jobs >= 5 } + + pub fn download(&mut self, sid: uuid::Uuid, song: Song) -> crate::Result<()> { self.current_jobs += 1; let song_format = xmpd_settings::Settings::get().unwrap().tooling.song_format.clone(); - let tooling = xmpd_settings::Settings::get()?.tooling.clone(); - let mut song_cache_d = xmpd_cliargs::CLIARGS.cache_path(); + let settings = xmpd_settings::Settings::get()?.clone(); + let tooling = settings.tooling.clone(); + let mut song_cache_d = settings.cache_settings.cache_path.clone(); song_cache_d.push("songs"); match song.source_type() { SourceType::Youtube | @@ -49,7 +59,7 @@ impl SongCacheDl { dl_cmd.args(["-x", "--audio-format", &song_format]); dl_cmd.arg("-o"); dl_cmd.arg(&song_p); - + if xmpd_cliargs::CLIARGS.debug { dl_cmd.stdout(Stdio::piped()); dl_cmd.stderr(Stdio::piped()); diff --git a/xmpd-cache/src/lib.rs b/xmpd-cache/src/lib.rs index f883a21..fb27cb9 100644 --- a/xmpd-cache/src/lib.rs +++ b/xmpd-cache/src/lib.rs @@ -1,4 +1,6 @@ use std::{collections::HashMap, path::PathBuf, str::FromStr, sync::{mpsc::{self, Receiver, Sender}, Arc, Mutex, MutexGuard}, time::Duration}; +use anyhow::anyhow; +use camino::{Utf8Path, Utf8PathBuf}; use downloader::song::SongStatus; use xmpd_manifest::song::Song; @@ -41,18 +43,40 @@ impl Cache { Err(e) => Err(anyhow::anyhow!(format!("{e:?}"))), } } - + fn check_if_tool_exists(&self, tool_path: &Utf8Path) -> crate::Result<()> { + if std::fs::metadata(tool_path).is_ok() { + return Ok(()); + } + if let Ok(path) = std::env::var("PATH") { + for p in path.split(":") { + let p_str = Utf8PathBuf::from(p).join(tool_path); + if std::fs::metadata(p_str).is_ok() { + return Ok(()); + } + } + } + anyhow::bail!("Tool {} was not found", tool_path) + } pub fn init(&mut self) -> Result> { + // Check for missing tooling + + let tooling = xmpd_settings::Settings::get()?.tooling.clone(); + self.check_if_tool_exists(&tooling.ytdlp_path)?; + self.check_if_tool_exists(&tooling.spotdl_path)?; + self.check_if_tool_exists(&tooling.ffmpeg_path)?; + + + let (internal_tx, cache_rx) = mpsc::channel::(); // let (internal_rx, cache_tx) = mpsc::channel::(); start_cache_mv_thread(internal_tx); - self.cache_dir = xmpd_cliargs::CLIARGS.cache_path(); - + self.cache_dir = xmpd_settings::Settings::get()?.cache_settings.cache_path.clone(); + std::fs::create_dir_all(&self.cache_dir)?; { // Get cached songs let mut song_cache_dir = self.cache_dir.clone(); - std::fs::create_dir_all(&song_cache_dir)?; song_cache_dir.push("songs"); - for file in song_cache_dir.read_dir_utf8()? { + std::fs::create_dir_all(&song_cache_dir)?; + for file in song_cache_dir.read_dir_utf8().map_err(|e| anyhow!("failed to read cache dir: {e}"))? { if let Ok(file) = file { if !file.file_type()?.is_file() { log::warn!("Non song file in: {}", file.path()); @@ -126,7 +150,7 @@ fn start_cache_mv_thread(tx: Sender) { for (sid, status) in &dlc.jobs { if *status == SongStatus::Done { let mut cache = he!(tx, CACHE.lock()); - let mut song_p = xmpd_cliargs::CLIARGS.cache_path().clone(); + let mut song_p = he!(tx, xmpd_settings::Settings::get()).cache_settings.cache_path.clone(); song_p.push("songs"); song_p.push(sid.clone().to_string()); let song_p = song_p.with_extension(&song_format); diff --git a/xmpd-cliargs/src/lib.rs b/xmpd-cliargs/src/lib.rs index 589fdf5..347f0b4 100644 --- a/xmpd-cliargs/src/lib.rs +++ b/xmpd-cliargs/src/lib.rs @@ -10,72 +10,28 @@ lazy_static::lazy_static!( #[derive(Debug, clap::Parser)] pub struct CliArgs { /// Manifest path - #[arg(long, short, default_value_t=get_default_manifest_path())] - manifest: camino::Utf8PathBuf, + #[arg(long, short)] + manifest: Option, /// settings file path - #[arg(long, short, default_value_t=get_default_settings_path())] + #[arg(long, short, default_value="./settings.toml")] settings: camino::Utf8PathBuf, /// Cache dir path - #[arg(long, short, default_value_t=get_default_cache_path())] - cache: camino::Utf8PathBuf, + #[arg(long, short)] + cache: Option, /// Debug mode #[arg(long, short)] pub debug: bool, } impl CliArgs { - pub fn manifest_path(&self) -> PathBuf { - self.manifest.clone().into_std_path_buf() + pub fn manifest_path(&self) -> Option { + self.manifest.clone() } - pub fn settings_path(&self) -> PathBuf { - self.settings.clone().into_std_path_buf() + pub fn settings_path(&self) -> Utf8PathBuf { + self.settings.clone() } - pub fn cache_path(&self) -> Utf8PathBuf { + pub fn cache_path(&self) -> Option { self.cache.clone() } } -#[allow(irrefutable_let_patterns)] // Broken? -fn get_default_settings_path() -> camino::Utf8PathBuf { - if let Ok(p) = std::env::var("XMPD_SETTINGS_PATH") { - if let Ok(p) = camino::Utf8PathBuf::from_str(&p) { - return p; - } - } - - if let Some(mut p) = dirs::config_dir() { - p.push("xmpd"); - p.push("config.toml"); - return camino::Utf8PathBuf::from_path_buf(p).expect("Invalid os path"); - } - unreachable!() -} - -#[allow(irrefutable_let_patterns)] // Broken? -fn get_default_manifest_path() -> camino::Utf8PathBuf { - if let Ok(p) = std::env::var("XMPD_MANIFEST_PATH") { - if let Ok(p) = camino::Utf8PathBuf::from_str(&p) { - return p; - } - } - if let Some(mut p) = dirs::config_dir() { - p.push("xmpd"); - p.push("manifest.json"); - return camino::Utf8PathBuf::from_path_buf(p).expect("Invalid os path"); - } - unreachable!() -} - -#[allow(irrefutable_let_patterns)] // Broken? -fn get_default_cache_path() -> camino::Utf8PathBuf { - if let Ok(p) = std::env::var("XMPD_CACHE_PATH") { - if let Ok(p) = camino::Utf8PathBuf::from_str(&p) { - return p; - } - } - if let Some(mut p) = dirs::cache_dir() { - p.push("xmpd"); - return camino::Utf8PathBuf::from_path_buf(p).expect("Invalid os path"); - } - unreachable!() -} diff --git a/xmpd-core/src/main.rs b/xmpd-core/src/main.rs index bac3260..e6b4c2a 100644 --- a/xmpd-core/src/main.rs +++ b/xmpd-core/src/main.rs @@ -11,7 +11,10 @@ fn main() -> Result<()> { let cliargs = &xmpd_cliargs::CLIARGS; logger::init(&cliargs); log::debug!("Initialising settings"); - xmpd_settings::Settings::get()?.load(Some(cliargs.settings_path()))?; + { + xmpd_settings::Settings::get()?.load(Some(cliargs.settings_path().into_std_path_buf()))?; + xmpd_settings::Settings::get()?.load_cli_args(cliargs); + } log::debug!("Starting gui"); xmpd_gui::start()?; Ok(()) diff --git a/xmpd-gui/Cargo.toml b/xmpd-gui/Cargo.toml index 8e7a187..32617b9 100644 --- a/xmpd-gui/Cargo.toml +++ b/xmpd-gui/Cargo.toml @@ -33,3 +33,5 @@ uuid.workspace = true camino.workspace = true rfd.workspace = true dirs.workspace = true +downcast-rs.workspace = true +url.workspace = true diff --git a/xmpd-gui/src/components/song_list/mod.rs b/xmpd-gui/src/components/song_list/mod.rs index 3d29cc3..e238f31 100644 --- a/xmpd-gui/src/components/song_list/mod.rs +++ b/xmpd-gui/src/components/song_list/mod.rs @@ -1,9 +1,11 @@ +use anyhow::anyhow; use egui::{Color32, CursorIcon, ImageSource, RichText, Sense, Vec2}; use xmpd_cache::DlStatus; use xmpd_manifest::{query, song::Song, store::{BaseStore, StoreExtras}}; -use crate::utils::SearchType; - +use crate::{components::toast::{Toast, ToastType}, utils::SearchType, windows::WindowId}; +use std::any::Any; use super::{CompGetter, CompUi}; +use downcast_rs::Downcast; pub mod header; @@ -93,7 +95,7 @@ impl SongList { fn display_song_tab(ui: &mut egui::Ui, state: &mut crate::GuiState, sid: &uuid::Uuid) -> crate::Result<()> { let mut clicked = false; ui.horizontal(|ui| { - let song = handle_option!("(internal)", state.manifest.store().get_song(sid)); + let song = handle_option!("(internal)", state.manifest.store().get_song(sid)).clone(); let theme = handle_error_ui!(xmpd_settings::Settings::get()).theme.clone(); // let icon_status = handle_error_ui!(xmpd_cache::Cache::get()).get_cached_icon_status(&sid).clone(); let img = ui.add( @@ -151,7 +153,7 @@ impl SongList { } } - // label.context_menu(|ui| handle_error_ui!(Self::show_context_menu(ui, sid, song))); + label.context_menu(|ui| handle_error_ui!(Self::show_context_menu(state, ui, sid, &song))); ui.monospace( RichText::new(format!("By {}", song.author())) .color(theme.dim_text_color) @@ -165,14 +167,14 @@ impl SongList { match status { Some(DlStatus::Done(_)) => { - //let img = egui::Image::new(crate::data::CHECK_ICON) - // .tint(Color32::LIGHT_GREEN) - // .sense(Sense::hover()) - // .fit_to_exact_size(Vec2::new(16.0, 16.0)); + let img = egui::Image::new(crate::data::CHECK_ICON) + .tint(Color32::LIGHT_GREEN) + .sense(Sense::hover()) + .fit_to_exact_size(Vec2::new(16.0, 16.0)); - //ui.add(img).on_hover_ui(|ui| { - // ui.label(format!("Path: {p}")); - //}); + ui.add(img).on_hover_ui(|ui| { + ui.label(format!("Id: {sid}")); + }); } Some(DlStatus::Downloading) => { let spinner = egui::Spinner::new() @@ -264,10 +266,36 @@ impl SongList { } Ok(playable_songs) } - //fn show_context_menu(ui: &mut egui::Ui, sid: &uuid::Uuid, song: &Song) -> crate::Result<()> { - // if ui.button("Download icon").clicked() { - // xmpd_cache::Cache::get()?.download_icon_to_cache(sid.clone(), song.clone()); - // } - // Ok(()) - //} + fn show_context_menu(state: &mut crate::GuiState, ui: &mut egui::Ui, sid: &uuid::Uuid, song: &Song) -> crate::Result<()> { + if ui.button("Edit").clicked() { + // TODO: Implement song editing + Toast::get().unwrap().show_toast("Not Implemented", "Song editing is not implemented", ToastType::Error); + //state.windows.toggle(&crate::windows::WindowId::NewSong, status); + ui.close_menu(); + } + if ui.button("Add to playlist").clicked() { + // TODO: Implement song editing + Toast::get().unwrap().show_toast("Not Implemented", "Adding songs to another playlist is not implemented, go to that playlist and press add song", ToastType::Error); + //state.windows.toggle(&WindowId::AddSongToPl, true); + //let mut windows = crate::windows::WINDOWS.lock().map_err(|e| anyhow!("{e}"))?; + //let mut w = windows.get_mut(&WindowId::AddSongToPl); + //let w = w.as_any_mut(); + + ui.close_menu(); + } + if ui.button("Songs by artist").clicked() { + crate::components::song_list::header::Header::get()?.search_text = format!("author:{}", song.author()); + ui.close_menu(); + } + if ui.button(RichText::new("Remove from playlist").color(Color32::RED)).clicked() { + Toast::get().unwrap().show_toast("Not Implemented", "Removing songs from playlists is not implemented", ToastType::Error); + ui.close_menu(); + } + if ui.button(RichText::new("Remove song globally").color(Color32::RED)).clicked() { + Toast::get().unwrap().show_toast("Not Implemented", "Removing songs globally is not implemented", ToastType::Error); + ui.close_menu(); + } + + Ok(()) + } } diff --git a/xmpd-gui/src/components/top_nav.rs b/xmpd-gui/src/components/top_nav.rs index 2a98429..2dfd058 100644 --- a/xmpd-gui/src/components/top_nav.rs +++ b/xmpd-gui/src/components/top_nav.rs @@ -28,6 +28,9 @@ impl CompUi for TopNav { } }); ui.menu_button("Manifest", |ui| { + if ui.button("Add New Song").clicked() { + state.windows.toggle(&WindowId::NewSong, true); + } if ui.button("Save").clicked() { handle_error_ui!(state.manifest.save()); ui.close_menu(); diff --git a/xmpd-gui/src/lib.rs b/xmpd-gui/src/lib.rs index 79dfc74..f16cc8c 100644 --- a/xmpd-gui/src/lib.rs +++ b/xmpd-gui/src/lib.rs @@ -1,4 +1,6 @@ +use std::path::Path; use std::time::{Duration, Instant}; +use anyhow::anyhow; use xmpd_manifest::{store::JsonStore, Manifest}; #[macro_use] @@ -14,15 +16,20 @@ const W_NAME: &str = "xmpd v2.0.0a"; type Result = anyhow::Result; pub fn start() -> Result<()> { - let cache_rx = xmpd_cache::Cache::get()?.init()?; + let manifest_p = xmpd_settings::Settings::get()?.cache_settings.manifest_path.clone().into_std_path_buf(); + let cache_rx = xmpd_cache::Cache::get() + .map_err(|e| anyhow!("Failed to get cache: {e}"))? + .init() + .map_err(|e| anyhow!("Failed to init cache: {e}"))?; + let options = eframe::NativeOptions::default(); - let mut state = GuiState::new()?; + let mut state = GuiState::new(&manifest_p)?; let res = eframe::run_simple_native(W_NAME, options, move |ctx, _frame| { #[cfg(debug_assertions)] let f_start = Instant::now(); egui_extras::install_image_loaders(ctx); - windows::Windows::draw_all(ctx, &mut state); + windows::Windows::draw_all(ctx, &mut state); handle_error_ui!(main_window::draw(ctx, &mut state, &cache_rx)); ctx.request_repaint_after(Duration::from_millis(500)); @@ -54,22 +61,22 @@ pub struct GuiState { impl GuiState { #[cfg(debug_assertions)] - pub fn new() -> Result { + pub fn new(manifest_p: &Path) -> Result { Ok(Self { debug_info: DebugInfo { last_frame_time: Default::default() }, player: xmpd_player::Player::new(), - manifest: Manifest::new(&xmpd_cliargs::CLIARGS.manifest_path())?, + manifest: Manifest::new(manifest_p)?, windows: windows::Windows::new(), }) } #[cfg(not(debug_assertions))] - pub fn new() -> Result { + pub fn new(manifest_p: &Path) -> Result { Ok(Self { player: xmpd_player::Player::new(), - manifest: Manifest::new(&xmpd_cliargs::CLIARGS.manifest_path())?, + manifest: Manifest::new(manifest_p)?, windows: windows::Windows::new(), }) } diff --git a/xmpd-gui/src/windows/add_song.rs b/xmpd-gui/src/windows/add_song.rs index 3beb1a3..49a4266 100644 --- a/xmpd-gui/src/windows/add_song.rs +++ b/xmpd-gui/src/windows/add_song.rs @@ -1,6 +1,8 @@ -use egui::{RichText, TextEdit}; +use egui::{RichText, Sense, TextEdit, TopBottomPanel}; use xmpd_cache::DlStatus; -use xmpd_manifest::store::{BaseStore, StoreExtras}; +use xmpd_manifest::{song::Song, store::{BaseStore, StoreExtras}}; + +use crate::{components::{CompGetter, toast::{Toast, ToastType}}, windows::WindowId}; use super::Window; @@ -8,6 +10,7 @@ use super::Window; #[derive(Debug, Default)] pub struct AddSongW { sid: uuid::Uuid, + pid: Option, } impl Window for AddSongW { @@ -18,6 +21,8 @@ impl Window for AddSongW { "Add Song to Playlist" } fn draw(&mut self, ui: &mut egui::Ui, state: &mut crate::GuiState) -> crate::Result<()> { + let mut save = false; + self.pid = crate::components::left_nav::LeftNav::get()?.selected_playlist_id.clone(); let theme = xmpd_settings::Settings::get()?.theme.clone(); let songs: Vec<_> = state.manifest.store().get_songs_sorted(); @@ -61,7 +66,7 @@ impl Window for AddSongW { .show(ui, |ui| { ui.vertical(|ui| { for (sid, song) in songs { - ui.group(|ui| { + let resp = ui.group(|ui| { let avail = ui.available_size(); ui.horizontal(|ui| { ui.set_width(avail.x); @@ -87,13 +92,62 @@ impl Window for AddSongW { }); }); }); + if resp.response.interact(Sense::click()).clicked() { + self.sid = sid.clone(); + } } }); } ); }); + let theme = handle_error_ui!(xmpd_settings::Settings::get()).theme.clone(); + TopBottomPanel::bottom("bottom_bar") + .frame( + egui::Frame::none() + .fill(theme.primary_bg_color) + .stroke(egui::Stroke::new( + 1.0, + theme.secondary_bg_color, + )), + ) + .show(ui.ctx(), |ui| { + ui.style_mut().visuals.override_text_color = Some(theme.text_color); + + ui.add_space(3.0); + ui.horizontal(|ui| { + // ui.add_space(3.0); + + + if ui.button("Add").clicked() { + save = true; + } + + if ui.button("Cancel").clicked() { + state.windows.toggle(&WindowId::AddSongToPl, false); + } + if ui.button("Close").clicked() { + state.windows.toggle(&WindowId::AddSongToPl, false); + } + }); + }); + }) }); + if save { + match &self.pid { + Some(pid) => { + let pl = state.manifest.store_mut().get_playlist_mut(pid); + match pl { + Some(pl) => pl.add_song(&self.sid), + None => Toast::get().unwrap().show_toast("Not Allowed", "You cant add a song to the 'All Songs' playlist", ToastType::Error) + }; + } + None => (), + } + } Ok(()) } + fn set_value(&mut self, k: String, v: Box) where Self: Sized { + + } } diff --git a/xmpd-gui/src/windows/debug.rs b/xmpd-gui/src/windows/debug.rs index 064673b..de43f85 100644 --- a/xmpd-gui/src/windows/debug.rs +++ b/xmpd-gui/src/windows/debug.rs @@ -62,6 +62,9 @@ impl Window for DebugW { }); Ok(()) } + fn set_value(&mut self, k: String, v: Box) where Self: Sized { + + } } impl DebugW { diff --git a/xmpd-gui/src/windows/error.rs b/xmpd-gui/src/windows/error.rs index 1fcdd31..87710e6 100644 --- a/xmpd-gui/src/windows/error.rs +++ b/xmpd-gui/src/windows/error.rs @@ -17,4 +17,7 @@ impl Window for ErrorW { ui.label("Hello from other window!"); Ok(()) } + fn set_value(&mut self, k: String, v: Box) where Self: Sized { + + } } diff --git a/xmpd-gui/src/windows/mod.rs b/xmpd-gui/src/windows/mod.rs index 66b51ab..3055f35 100644 --- a/xmpd-gui/src/windows/mod.rs +++ b/xmpd-gui/src/windows/mod.rs @@ -3,15 +3,15 @@ use egui::{ViewportBuilder, ViewportId}; use crate::GuiState; #[cfg(debug_assertions)] -mod debug; -mod error; -mod settings; -mod add_song; -mod new_song; -mod new_playlist; +pub mod debug; +pub mod error; +pub mod settings; +pub mod add_song; +pub mod new_song; +pub mod new_playlist; lazy_static::lazy_static!( - static ref WINDOWS: Arc>>> = Arc::new(Mutex::new(HashMap::new())); + pub static ref WINDOWS: Arc>>> = Arc::new(Mutex::new(HashMap::new())); static ref OPEN_WINDOWS: Arc>> = Arc::new(Mutex::new(HashSet::new())); ); @@ -22,6 +22,7 @@ pub trait Window: std::fmt::Debug + Send { fn close(&self) where Self: Sized{ OPEN_WINDOWS.lock().unwrap().remove(&Self::id()); } + fn set_value(&mut self, k: String, v: Box) where Self: Sized; } #[derive(Debug, Clone, Hash, PartialEq, PartialOrd, Ord, Eq)] @@ -104,4 +105,10 @@ impl Windows { pub fn is_open(&self, id: &WindowId) -> bool { OPEN_WINDOWS.lock().unwrap().contains(&id) } + + pub fn set_value(&self, id: &WindowId, k: impl ToString, v: impl ToString) -> crate::Result<()> { + // WINDOWS.lock().unwrap().get_mut(&win_id).unwrap().set_value(); + // + Ok(()) + } } diff --git a/xmpd-gui/src/windows/new_playlist.rs b/xmpd-gui/src/windows/new_playlist.rs index 7414a29..d807b12 100644 --- a/xmpd-gui/src/windows/new_playlist.rs +++ b/xmpd-gui/src/windows/new_playlist.rs @@ -99,4 +99,7 @@ impl Window for NewPlaylistW { }); Ok(()) } + fn set_value(&mut self, k: String, v: Box) where Self: Sized { + + } } diff --git a/xmpd-gui/src/windows/new_song.rs b/xmpd-gui/src/windows/new_song.rs index b0d27b7..5addfa4 100644 --- a/xmpd-gui/src/windows/new_song.rs +++ b/xmpd-gui/src/windows/new_song.rs @@ -1,9 +1,20 @@ +use std::str::FromStr; + +use egui::{Sense, Vec2}; +use xmpd_manifest::{song::{Song, SourceType}, store::BaseStore}; + +use crate::{components::{CompGetter, toast::{Toast, ToastType}}, windows::WindowId}; + use super::Window; #[derive(Debug, Default)] pub struct NewSongW { - + name: String, + author: String, + source_t: SourceType, + source_url: String, + source_url_old: String, } impl Window for NewSongW { @@ -13,8 +24,113 @@ impl Window for NewSongW { fn default_title() -> &'static str where Self: Sized { "New Song" } - fn draw(&mut self, ui: &mut egui::Ui, _: &mut crate::GuiState) -> crate::Result<()> { - ui.label("Hello from other window!"); + fn draw(&mut self, ui: &mut egui::Ui, state: &mut crate::GuiState) -> crate::Result<()> { + let theme = xmpd_settings::Settings::get()?.theme.clone(); + let img_size = 64.0; + let img_spacing = 10.0; + ui.vertical(|ui| { + let mut rect = egui::Rect::ZERO; + rect.set_width(img_size); + rect.set_height(img_size); + rect.set_top(img_spacing); + rect.set_left(img_spacing); + let rect_int = ui.interact(rect, "new_playlist_w".into(), Sense::click()); + if rect_int.hovered() { + ui.allocate_ui_at_rect(rect, |ui| { + ui.group(|ui| { + let img = egui::Image::new(crate::data::PLUS_ICON) + .tint(theme.accent_color) + .fit_to_exact_size(Vec2::new(img_size, img_size)); + //.paint_at(ui, rect); + ui.add(img); + }); + }); + + } else { + ui.allocate_ui_at_rect(rect, |ui| { + ui.group(|ui| { + let img = egui::Image::new(crate::data::NOTE_ICON) + .tint(theme.accent_color) + .fit_to_exact_size(Vec2::new(img_size, img_size)); + //.paint_at(ui, rect); + ui.add(img); + }); + }); + } + if rect_int.clicked() { + // TODO: Add a way to add custom icons + Toast::get().unwrap().show_toast("Not Implemented", "Adding icons to songs is not implemented", ToastType::Error); + } + ui.add_space(img_spacing); + ui.horizontal(|ui| { + ui.label("Name: "); + ui.text_edit_singleline(&mut self.name); + }); + ui.horizontal(|ui| { + ui.label("Author: "); + ui.text_edit_singleline(&mut self.author); + }); + ui.horizontal(|ui| { + ui.label("Source Type: "); + egui::ComboBox::new("new_song_song_t_sel", "") + .selected_text(self.source_t.to_string()) + .show_ui(ui, |ui| { + ui.selectable_value(&mut self.source_t, SourceType::Youtube, SourceType::Youtube.to_string()); + ui.selectable_value(&mut self.source_t, SourceType::Spotify, SourceType::Spotify.to_string()); + ui.selectable_value(&mut self.source_t, SourceType::Soundcloud, SourceType::Soundcloud.to_string()); + //ui.selectable_value(&mut self.source_t, SourceType::HttpBare, SourceType::HttpBare.to_string()); + //ui.selectable_value(&mut self.source_t, SourceType::HttpZip, SourceType::HttpZip.to_string()); + //ui.selectable_value(&mut self.source_t, SourceType::Http7z, SourceType::Http7z.to_string()); + } + ); + }); + ui.horizontal(|ui| { + ui.label("Source URL: "); + ui.text_edit_singleline(&mut self.source_url); + if self.source_url != self.source_url_old { + if let Some(t) = SourceType::from_url(&handle_error_ui!(url::Url::from_str(&self.source_url))) { + self.source_t = t; + } + } + }); + + ui.with_layout(egui::Layout::bottom_up(egui::Align::Max), |ui| { + ui.add_space(3.0); + ui.horizontal(|ui| { + ui.add_space(3.0); + if ui.button("Close").clicked() { + self.author = String::from("New Song"); + self.name = String::from("Unknown"); + self.source_t = SourceType::Youtube; + self.source_url = String::default(); + state.windows.toggle(&WindowId::NewSong, false); + } + + if ui.button("Add").clicked() { + let mut s = handle_error_ui!(Song::new_from_str(&self.source_url, self.source_t)); + s.set_name(&self.name); + s.set_author(&self.author); + state.manifest.store_mut().get_songs_mut().insert(uuid::Uuid::new_v4(), s); + + self.author = String::from("New Song"); + self.name = String::from("Unknown"); + self.source_t = SourceType::Youtube; + self.source_url = String::default(); + } + + if ui.button("Cancel").clicked() { + self.author = String::from("New Song"); + self.name = String::from("Unknown"); + self.source_t = SourceType::Youtube; + self.source_url = String::default(); + state.windows.toggle(&WindowId::NewSong, false); + } + }); + }); + }); Ok(()) } + fn set_value(&mut self, _: String, _: Box) where Self: Sized { + + } } diff --git a/xmpd-gui/src/windows/settings.rs b/xmpd-gui/src/windows/settings.rs index 72d096d..2c9ed64 100644 --- a/xmpd-gui/src/windows/settings.rs +++ b/xmpd-gui/src/windows/settings.rs @@ -85,6 +85,9 @@ impl Window for SettingsW { }); Ok(()) } + fn set_value(&mut self, k: String, v: Box) where Self: Sized { + + } } impl SettingsW { diff --git a/xmpd-manifest/src/lib.rs b/xmpd-manifest/src/lib.rs index 353c0d0..13c8800 100644 --- a/xmpd-manifest/src/lib.rs +++ b/xmpd-manifest/src/lib.rs @@ -1,5 +1,7 @@ use std::path::{Path, PathBuf}; +use anyhow::anyhow; + #[cfg(test)] pub mod tests; @@ -59,12 +61,13 @@ impl Manifest { } pub fn get_song_as_path(&self, sid: uuid::Uuid) -> Result { - let ext = &xmpd_settings::Settings::get()?.tooling.song_format; - let mut p = xmpd_cliargs::CLIARGS.cache_path().into_std_path_buf(); + let settings = &xmpd_settings::Settings::get()?; + let ext = &settings.tooling.song_format; + let mut p = settings.cache_settings.cache_path.clone(); p.push("songs"); p.push(sid.to_string()); p.set_extension(ext); - Ok(p) + Ok(p.into_std_path_buf()) } } diff --git a/xmpd-manifest/src/song.rs b/xmpd-manifest/src/song.rs index 28a7359..67cb42c 100644 --- a/xmpd-manifest/src/song.rs +++ b/xmpd-manifest/src/song.rs @@ -83,8 +83,9 @@ impl Song { } } -#[derive(Debug, Clone, Copy, serde::Serialize, serde::Deserialize, PartialEq, PartialOrd)] +#[derive(Debug, Clone, Copy, serde::Serialize, serde::Deserialize, PartialEq, PartialOrd, Default)] pub enum SourceType { + #[default] Youtube, Spotify, Soundcloud, @@ -94,7 +95,7 @@ pub enum SourceType { } impl SourceType { - fn from_url(url: &url::Url) -> Option { + pub fn from_url(url: &url::Url) -> Option { match url.host_str() { Some("youtube.com") | Some("youtu.be") => Some(Self::Youtube), diff --git a/xmpd-settings/Cargo.toml b/xmpd-settings/Cargo.toml index 2f701f7..41b4eb7 100644 --- a/xmpd-settings/Cargo.toml +++ b/xmpd-settings/Cargo.toml @@ -7,6 +7,7 @@ license.workspace = true authors.workspace = true [dependencies] +xmpd-cliargs.path = "../xmpd-cliargs" anyhow.workspace = true camino.workspace = true egui.workspace = true diff --git a/xmpd-settings/src/cache.rs b/xmpd-settings/src/cache.rs new file mode 100644 index 0000000..cdbeeb4 --- /dev/null +++ b/xmpd-settings/src/cache.rs @@ -0,0 +1,29 @@ +use camino::Utf8PathBuf; +use serde::{Deserialize, Serialize}; + + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct Cache { + #[serde(default="Cache::default_cache_path")] + pub cache_path: Utf8PathBuf, + #[serde(default="Cache::default_manifest_path")] + pub manifest_path: Utf8PathBuf, +} + +impl Default for Cache { + fn default() -> Self { + Self { + cache_path: Self::default_cache_path(), + manifest_path: Self::default_manifest_path(), + } + } +} + +impl Cache { + fn default_cache_path() -> Utf8PathBuf { + Utf8PathBuf::from("./cache") + } + fn default_manifest_path() -> Utf8PathBuf { + Utf8PathBuf::from("./manifest.json") + } +} diff --git a/xmpd-settings/src/lib.rs b/xmpd-settings/src/lib.rs index a065288..a127d38 100644 --- a/xmpd-settings/src/lib.rs +++ b/xmpd-settings/src/lib.rs @@ -5,6 +5,7 @@ use tooling::Tooling; pub mod theme; pub mod tooling; +pub mod cache; lazy_static::lazy_static!( static ref SETTINGS: Arc> = Arc::new(Mutex::new(Settings::default())); @@ -20,6 +21,8 @@ pub struct Settings { pub theme: Theme, #[serde(default)] pub tooling: Tooling, + #[serde(default)] + pub cache_settings: cache::Cache } impl Settings { @@ -54,6 +57,16 @@ impl Settings { self.settings_path = path; Ok(()) } + + + pub fn load_cli_args(&mut self, cli_args: &xmpd_cliargs::CliArgs) { + if let Some(mp) = cli_args.manifest_path() { + self.cache_settings.manifest_path = mp; + } + if let Some(cp) = cli_args.cache_path() { + self.cache_settings.cache_path = cp; + } + } }