The first thing you should know about me is that I don't like unstated assumptions.
The world is a complicated place, and our small minds can barely hope to fully grasp it. So, I'll pretend that I'm a good writer and you can pretend you're interested in reading about what sounds like a confused dating profile.
It's not a dating profile.
I like long walks on the gravely beaches of Alberta, pina colada flavored bubble tea, and getting caught in a try/catch exception. My pastimes include coding, making impeccable websites, making peckable websites (*insert chicken peck*), and guitar. If you'd like a website like this one, and would like to pay me for it, head over to the freelance (*link*) section. If you'd like to hear more options, please press 2. (*insert dial popup*)
In all seriousness, I wrote this website to help market myself as I move to freelancing and just really to show others what a website can be and what kinds of things that websites nowadays are capable of. Of course I don't claim to have the fanciest website around, but it loads quick, it's quirky (if I do say so), and it represents who I am. Coincidentally, that's also what kinds of things I'd like to work on for freelancing.
Archived: Soundcloud Scraper
I like music. When I find a song I like, I want to listen to it until it becomes dead to me. During the summer, I would listen to random songs here and there (courtesy of r/electrohouse) while working and often find good songs. I emailed myself a list of links to download when I got home. The list had 3 types of links:
- Youtube links, downloadable with flv2mp3
- Soundcloud song links, downloadable with Soundcloud Downloader
- Soundcloud artist links
If I wanted to download these links, I would need to do it one by one. There must be an easier way!
The first problem I encountered even before coding was that not all SC links were downloadable. I of course could care less
why SC limits their downloads, but it bothers me that they do. One notion I see myself mention a lot (and that should be the
11th law of security) is:
(i) You must not copy, rip or capture, or attempt to copy, rip or capture, any audio Content from the Platform or any part of the Platform , other than by means of download in circumstances where the relevant Uploader has enabled the download functionality with respect to the relevant item of Content.
Of course, I find it kind of odd that by accessing their website, you automatically agree to their
(vii) You must not, and must not permit any third party to, copy or adapt the object code of the Website or any of the Services, or reverse engineer, reverse assemble, decompile, modify or attempt to discover any source or object code of any part of the Platform, or circumvent or attempt to circumvent or copy any copy protection mechanism or access any rights management information pertaining to Content other than Your Content.
I’ve never heard of something so ballsy as to say that I can’t view your html code
If any party disagrees with me posting this, please notify me via email (firstname.lastname@example.org) and I will swiftly remove this page from my website. Although, it might take awhile for me to get the email since I’m behind seven proxies.
Alright, here we go. First I found this awesome JS script by Captain Frech, and aye, I must say it sure helped. What his/her code is based on is the fact that SC hides the download link unencrypted, in plain sight:
Here’s my code snippet (full code here):
The script uses
My perl script reads the playlist text file, determines the type of link, and downloads it. Youtube links were not implemented. For downloading a single SC song link, it does the following:
Downloading an entire artist’s worth of songs is just as simple since my PhantomJS script does all the heavy lifting. The perl script basically downloads whatever comes it way, while the PhantomJS script navigates from page to page extracting all the songs it finds.
Ha! you almost got me. Of
END OF POST
Archived from my old website. And yes, I do realize that all that soundcloud needs to do is correlate webserver access times to this post but idgaf
things I made
In no order (TODO: add images, reformat as grid)
- Arduino Guitar Pedal
- 4Score Iphone game
- Soundcloud scraper
- Raspberry Pi Wireless Sampler
- Home-made touch screen
- Software modular audio synthesiser
- Experiments in natural language processing and machine learning
- LED control circuits withh arduino
- Arduino spatula bot controlled by twitch
- Github commit viewer
- Auditory github commit viewer
- App for geotagging landmarks and commenting (anonument)
- Redid computer engineering wordpress site
- This website
- Experiments in DSP for face/eye tracking
- Homemade unofficial calendar for the 2015 Edmonton Fringe
- GPS path viewer
- Scrolling RPG platformer for GameJam
- Experiments in genetic programming
- Experiments in GPU programming (CUDA/WebGL)
- Encoding images from phone onto reel to reel tapedeck
- Program to take screenshots of Ionic phone apps
- Tool to see how frequently JS code is run (js-hist)
- Multi-user poetry app with unique suggestion UI
- Online signal for when to go to the bar in school
- Unfinished procedurally generated space RPG
- Discover Alberta app
- Enroute Taxi Advertising System
- Forestry radio tower registry
- Timesheet management system
- Home appliance maintenance app
- U of A Rutherford house tour app
- Social restaurant marketing app (MyTab)