# musicou-kit Musicou-kit is an API wrapper for Youtube Music, SoundCloud and Bandcamp. It's fairly straight forward to use and easy to implement into other applications. # Current state This crate is still experimental & WIP and will significantly change in the future. It has very messy code and some bugs and only support one(1) platform for now.. # Examples #### Search with a query and get the first artist and fetch its data. ```rust #[tokio::main] async fn main() { env_logger::init(); // logs stuff // crating search with query and defining platform let mut search = Search::new("the weeknd" structs::Platform::Youtube) .fetch(structs::Page::Artist) // fetching a certain page .await; // fetching all data for first artist in search results print!(" {:?}, ", search.unwrap().artists.unwrap()[0].fetch().await) // Ok(Artist { id: "UClYV6hHlupm_S_ObS1W-DYw", name: "The Weeknd", platform: Youtube, thumbnails: [Thumbnail { url: ".....", width: 540, height: 225 }], background: [], incomplete: true, followers: 33000000 } } ``` #### Getting song data from id ```rust #[tokio::main] async fn main() { env_logger::init(); // logs stuff let song = Song::from_id("diW6jXhLE0E").fetch().await; println!("{:?}", song.unwrap()); // Song { id: "", title: "The Weeknd - Party Monster (Official Video)", length: 258, author: Artist { id: "", name: "", platform: Youtube, thumbnails: [], background: [], incomplete: true, followers: 0, private_field: "" }, thumbnails: [Thumbnail { url: "https://i.ytimg.com/.....", width: 400, height: 225 } ... ], view_count: 154341745, streams: Some([Stream { url: "https://rr3---....", bitrate: "130477", mime_type: "audio/mp4; codecs="mp4a.40.2" } ]), album: None, type_of: Youtube, incomplete: false} } ``` ### Roadmap - Youtube scraping / extracting - [x] Stream extraction - [x] Music - [x] Search - [x] Songs - [x] Albums - [x] Playlists - [x] Artists - [x] Albums - [x] Artist - [x] Playlist - Soundcloud scraping - [ ] Stream extraction - [ ] Direct music lookup - [ ] Searh - [ ] Albums - [ ] Artist - [ ] Playlist - Bandcamp scraping - [ ] Stream extraction - [ ] Direct music lookup - [ ] Search - [ ] Albums - [ ] Artist - [ ] Playlist # Thanks <3! [Youtube internal api research](https://github.com/zerodytrash/YouTube-Internal-Clients)