Must know the pain of manually managing all this metadata. If you are the kind of person that likes to keep a library of your music, you Prepended to audio and contains information like the artist, track title, album MP3 files have a specific data format for storing metadata: ID3v2. In a way that allows easy searching, we need to add some metadata to the audio To be able to add these files to my library With the file IO interface implemented, I could now serve audio over FUSE!īut this project is not over yet. So I could use this to implement quick seeking in the files I serve over FUSE. SoundCloud supports Range requests on their audio so web browsers don’t have toĭownload the whole audio file when e.g. Setting the Range header to the desired offset. Server, a client may request the file from the server starting at an offset by HTTP supports seeking through remote files by using the But HTTP offers solution for seeking to arbitrary offsets. There’s a mismatch in this interface here: FUSE allows the file’s contents toīe accessed at arbitrary offsets, which is not possible with content streamed This function takes an offset and a lengthĪnd should return a chunk of the file being read by copying the data to a To be able to access the contents of a file, the FUSE interface requires the It is possible to access the audio on SoundCloud via an undocumented endpoint Metadata which I thought could come in handy. Plus, I also maintain a Rust library, id3, for reading and writing MP3 Pleasant to work with, somewhat low level and had 3rd party bindings for FUSE. I chose Rust as programming language for this project because it is fast, SoundCloud’s webpage uses their API, so I’ll use the token used for that Need a token in order to connect, and to get a token, you need to register yourĪpp with… A Google form… which has been taken offline. Getting access to SoundCloud’s API was actually a bit inconvenient. #SOUNDCLOUD DOWNLOAD DUMP DRIVER#And while these alternatives were probably easier to implement, I wentįor the FUSE driver because I thought it was cool. Support, or a scraper that periodically downloads the latest audio from myįeed. Swapping MPD with Mopidy, an MPD-compatible music player with SoundCloud I could have taken a couple of other approaches such as The audio on SoundCloud as a bunch of files in a folder which MPD could then To make my life easier, I wanted to leverage Linux’s FUSE interface to expose To the music server, let MPD index it, and then play it. I have to browse SoundCloud, download a track that seems interesting, upload it The usual process of playing something on our music server is a bit cumbersome: Of radio shows which I download from SoundCloud. The space’s music system, so I’ve taken up the habit of keeping up with a bunch Since I often work at my local Hackerspace alone, I can play whatever I want on
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |