I hacked SONOS and YouTube the same day
deadf00d.com
deadf00d.com
Wouldn't say malware and js cryptominers are a big worry of mine though, unless you go on really disreputable websites.
Every site should be usable without CSS / JS. Nobody remember Progressive Enhancement nowadays?
> but asking the author (who didn't even submit this link)
Why I should ask author, who submits this link? I'm asking author of this article, submitting has nothing to it.
> to your preference
It's not my preference, it's standards. Suggest read about it.
I never really understood why you couldn't just put AAC directly into MPEG-TS without the ADTS wrapper, but MPEG-TS is pretty weird (and with super-high overhead) anyway.
Getting good at using wireshark is a good place to start.
This project is pretty dead but I remember using it a few years ago https://github.com/stephen/airsonos
It will help not to put yourself into a box beforehand, like calling yourself a "purely frontend engineer." This is the kind of useless label for yourself that only serves to make you yourself think that you should stay in some arbitrary, badly specified corner of CS knowledge.
Literally just read about things, then use that knowledge to deconstruct other things. That's all that's going on.
http://www.darkridge.com/~jpr5/mirror/fravia.org/index.html http://woodmann.com/fravia/
Edit: Sorry that the page is somewhat labyrinthine.
Finding his site in 1995 or so taught me an enormous number of things that I don't think I would have learned any other way.
F
"February 3 19122"
Took a look to see what's up with that (I'm not familiar with javascript) but it looks like he was using a function that returned the number of years since 1900, with the "19" hardcoded. So for 1995-1999 it would've worked fine, but since 2000 it has been 19100, 19101, etc.
instead of
1900 + years_since_twentieth_century
Next time you find a website with a GraphQL API, try running the introspection query[1]. If that doesn't work, try fuzzing[2]. I've found multi-billion dollar companies who've
* Left open their GraphQL playground completely
* Enable introspection
Once you start you can dig into the API, and figure if you found anything interesting
[1] https://blog.yeswehack.com/yeswerhackers/how-exploit-graphql...
"This workshop is a 1-2 hour introduction to what reverse engineering is. It assumes no knowledge of assembly and is done on paper worksheets rather than a computer setup for accessibility and to make the most efficient use of time."
It's by Maddie Stone, who's a Security Researcher at Google Project Zero.
She also has Android app reverse engineering
https://www.ragingrock.com//pages/tutorials.html
Later, check out this book:
Reversing: Secrets of Reverse Engineering by Eldad Eilam
https://www.amazon.com/Reversing-Secrets-Engineering-Eldad-E...
People on /r/webscraping are constantly asking about web scraping of JS-rendered websites. As a front-end engineer, you have the experience of front-end debugging and using the browser dev tools. People who come to web scraping from the back-end world don't have this experience and are willing to learn.
[1]: https://medium.com/serpapi/how-we-reverse-engineered-google-... [2]: Disclaimer: I'm the author of this blog post
https://github.com/denysvitali/sonos-web/
https://github.com/denysvitali/sonos-web/blob/master/plugins...
Screenshots on the README are not available anymore, but I managed to find these:
http://stadt-bremerhaven.de/wp-content/uploads/2016/08/sonos...
https://stadt-bremerhaven.de/sonos-web-open-source-loesung-f...
For me I play Youtube videos by Chromecasting them to the TV, which is connected to my Sonos playbar and the rest of the ecosystem.
I've tried getting a Raspberry Pi and following some guides to turn it into an internet radio broadcaster that I can then pipe into Sonos, but the audio quality was always atrocious and the case that came with my Pi kit has a fan that is super loud.
I could get a Sonos Port for 700 AUD and do it the official way... but my record player is only like 300 AUD so it doesn't seem worth it. Here's hoping I can find a cheap used one.
Sonos needs to add an analog audio in port on more of their devices.
I agree that it wouldn't take much to do so and it would increase its accessibility, but I just don't think they have an appetite to do that.
The Sonos port device which they have had to allow you to physically connect devices has always been atrociously expensive. To think that I could buy two of their rear Sonos speakers and still have money left over be cheaper than the port is just silly.
https://www.sonos.com/en-au/shop/five
The Port and Amp are definitely aimed at the very high end consumer who wants a whole wireless system in their house and wants to connect to non Sonos speakers.
[1] https://play.google.com/store/apps/details?id=frontier.sonos...
You can go to a web page served by any SONOS device and tell it a url to treat as a music service. Code up a SOAP service there and you'll be able to do anything that any other music service does.
I'd never done anything with SOAP before, so there was a bit of a learning curve, but once I got over that hurdle most of the other coding was fairly easy. Their developer portal explains basically all of the things you can do.
Getting the service approved was the hardest part.
There was a time, not so long ago, security bugs hunters would claim they found some oddities within a sub module of some software, then disclose how it leads to escalation of privileges, 7 other severe flaws leading to remote code execution, ending with a mention that it makes half of the internet vulnerable since it's Apache or some other broadly used utility.
"A hacker is a person skilled in information technology who uses their technical knowledge to achieve a goal or overcome an obstacle, within a computerized system by non-standard means."
I guess parsing an MP4 file from YouTube is now classified as "hacking YouTube".
But I assume the title is a bit catchy.
Or are you considering the process of downloading the videos from YouTube hacking since it's against their terms of service?
The idea of 'hacking' you are referring to is a colloquialism that is shared by young teens and entertainment media. It is not a reflection of reality.
I had to have a friend run the setup for me.
I didn't read/notice this when I researched soundbar options. Had I known this in advance I probably wouldn't have selected it.
The idea that we're paying for devices and apps that are artificially limited and hobbled by others seeking more profit really has me worried about the future.
For example, Winamp ran several years as a music player, although it was not a very profitable operation, it functioned just like every other consumer music player since the 70s, with play, stop, track skipping, fast-forward, shuffle play etc...
Now music players have completely screwed up the model for a music player. They more often don't function properly unless a subscription is paid for.... They insert ads into music playlists, they often skip more than one track, they don't truly shuffle music, and they also add a ton of frustration with buffering and connectivity issues into the simple process of listening to music, even when I play my locally stored collection of music on them.
The practice of reducing features in something as simple as a music player, a device that is meant for enjoyment shows how grim the concept of a software-driven world should be. Products are rarely solving problems now, they are only introducing new and stupid problems, and not innovating further. It's a huge problem that should be addressed.
I'm tired of hobbled functionality, hack the planet. :P
I have 30Go of music files on my laptop, that I carefull update, and backup. I add to the collection once in a while.
But few do that anymore: no cd player in devices, and file systems are being abstracted away remember?
So they listen to music on youtube, spotify, soundcloud, etc.
They don't own the music, hence they can't chose the player.
You simply can't trust free apps any more. Probably can't even trust many of the paid ones because making people buy the same thing multiple times is more profitable for opportunistic individuals.
Keep backups in multiple (independent) locations.
But FOSS apps are still there for you.
VLC is to this day the best video players, across all OS, and can read music.
It's as not convenient to play music though.
re:parent comment, i feel like the streaming "free" music app/services are more iterations on radio stations rather than iterations on music players since radio has ads, pseudo random playlists, requirement to be "connected" etc.
Maybe unpopular opinion, but in comparison w/radio, I tend to think streaming actually looks pretty good.
Another tactic that developers now use is to have a fully functional app in the first-downloaded instance, but then the application slowly degrades as updates occur to encourage an up-sell. As a dev myself, I've directly seen this happen with apps I cannot specifically shame online.
I'm primarily referring to mobile apps. I have an SD card with my music library on it. The choice of apps there gets more complex... As phone makers remove SD card functionality, and headphone jacks, and limit out of the box music players, the ability to use my phone for music is also fading. I have had apps corrupt my locally saved music library as well in attempts to force me into buying streaming services perhaps, I no longer trust many services in app stores.
trayplayer.com
As for mobile audio I use Spotify but I have a library of mp3s on my SD card that I play with the default Samsung Music app which works just fine. No ads in that so far. If you haven't tried a modern BT 5.0 device, try giving bluetooth another chance.
Why are you comparing music players to streaming services? That's like comparing a Honda Civic to a cement mixer. You don't use both to accomplish the same job even if they both have four wheels and a gas pedal.
Streaming services like Spotify, are music players by nature obviously...
>Streaming services like Spotify, are music players by nature obviously...
Both a cement mixer and a honda civic are vehicles that one can drive on the road by nature. The point still stands that they shouldn't be compared directly, as they serve completely different purposes (despite them both being drivable vehicles).
And before you tell me you got your music and player on the high seas, you can still do that so I don't see how anything has changed.
AFAIK the local players still exist, many still in active development, for those who want to own their data.
They shafted so many customers with the S1/S2 incompatibility, leaving so many expensive and perfectly capable 'legacy' systems unable to add new (S2) devices.
It was purely to try and force people to upgrade perfectly decent devices, and prematurely turn a whole lot of S1 devices into e-waste.
While their products are still good, I wouldn't buy one again for fear of them introducing an S3 and rendering another set of devices obsolete.
Not sure why they felt the need to split the app into two rather than support the control of all devices through a single app, even if the S1 devices have a bit less functionality, or if S1 and S2 devices can't be grouped into a single zone.
And then they've prevented some new devices from running with the S1 app. My parents tried to buy an extra speaker, but it didn't work with their S1 system (whereas only a few months ago, they added a soundbar that worked fine)
It's a mess. It could have been handled a lot better. What new features do you even get with S2 that require more powerful hardware?
* Airplay * Hi-res audio formats * Better onboarding experience (BLE based, and can take advantage of iOS APIs to share Wifi password) * Support for DTS and Dolby Atmos
I suspect the reason for bifurcation is because the speakers form a cluster on your network. The apps don’t talk to individual speakers, the speakers elect a cluster leader and the app talks only with the leader. The leader then figures out how to get your command to the target speaker, which may be via your normal wifi, but could also be via the private Sonos Net mesh network the speakers form.
They want all the speakers to run exactly the same firmware because it’ll significantly reduce the complexity of their net code. No need to write forward or backwards compatible protocols, every speaks the same language. Side effect of this choice is that your firmware features become limited by your oldest hardware, even with feature flags, binary size could still be an issue for old devices.
So this means at some point you need either:
1. Start running two firmware versions, and some how make your net code forward/backwards compatible. Very difficult when dealing with tightly defined high entropy protocols needs for low latency comms, and super tight timing requirements.
2. Split make a set of your devices stuck on old software and incompatible with new hardware. So new and old can no longer join the same cluster. But simplify your net code.
Sonos obviously chose option 2, and I can understand why they made that choice. As for the apps, having them communicate with two different Sonos clusters, and somehow merge the UI sounds like a UI nightmare. Not unsolvable, but it wouldn’t surprise me if they tried it, and decided the experience was so crap and confusing, they were better of just making two apps.
Given what Sonos do, and rather extreme technical requirements of syncing audio to within a millisecond or two over dodgy wifi connections. I can sympathise with the difficult technical and product decisions that led to S1/S2. I personally doubt it’s an artificial limitation created for cynical profit pumping. But I can totally see it as way of reducing their software development complexity and costs, which is not an unreasonable business decision (Sonos isn’t a charity after all).
All these strange products we are getting around media probably mostly has to do with licensing requirements for DRM.
I assume it's as much the industry these people are working with/coming from as it is the actual straight greed of sonos.
I got a cheap HIFI (I think) Samsung system from 20+ years ago (paid $100 second-hand at that time), I use it as an amplifier through aux for the last 15 years (2x15W). Beside that, still have my tiny pc speakers, even older, from around the win98 era.
Neither seem to be asking for any firmware update, seem to be working fine so far. Haven't seen any other speakers in stores so far which could beat in quality the pair of Samsungs I got, they're basically monitors..
They now make soundbars, sonoses, bluetooth speakers... it amazes me that people put up with all of this, it's truly amazing people are convinced this is better than the old, wired, boring stuff.
The idea with Sonos was that they wouldn't release new hardware each year, but that the hardware would improve through software updates. For example, I have had two Play 3 speakers and the Sub since 2016. These worked great, then Sonos released TruePlay which allowed your speakers to configure themselves based on the space you were in. Its important to note that these speakers have been around since 2011 and 2013, so not a short space of time when it comes to technology.
The amazing thing with Sonos, was that anyone in the house could open up the app and play music through WiFi AND have a home theatre setup that could play from the TV. The beauty of the app is that it operates on its own, it doesn't rely on your mobile phone once you have left the house.
Sonos basically reinvented my Samsung remote. (+ the 8 meter cable I made as a 14 year old kid so I can connect it to the TV which was on the other side of the living room, cause my parents asked me if I could connect both for a house party).
Amazing.
It's important to note that the creators of Sonos speakers were ex-JBL engineers. Not just randoms who wanted to create a smart speaker.
These allegations of being intentionally malicious / consumer hostile don't stand up to scrutiny, nor to comparison with known examples of planned obsolescence in consumer electrical, such as Canon inkjets or Bosch kitchen appliances.
[The red one for sale at the moment doesn't make any sounds when you connect to it, the $0.79 black unit speaks ("now in bluetooth mode") when I connect to it, not great]
We have multiple people constantly playing, and multiple locations to play to. Bluetooth is good for a single speaker and single primary playing device but doesn't really solve multi-room multi-user music very well.
Also, the article is excellent but the title lets it down. Can i suggest it be changed to something like "reverse engineering SONOS to play YouTube". If deadf00d is still on maybe you should also rethink the title?
The author wants a speaker to pull a video off YouTube, which isn’t exactly know for be friendly to non-official clients, and play the audio. Please find me any speaker in the world that can be given a YouTube URL and will play the video audio with no other equipment involved. I’ve tried writing the URL on the speaker cone of my boring speaker, unfortunately no sound is coming out.
If the author just wanted to plug speakers into his computer and get sound, then he would have bought a non-smart speaker and amp. But clearly the author likes the ability to stream audio from the internet directly to his speakers. It’s just unfortunate that YouTube refuses to let people easily access the audio stream from their videos.
I've had their products for the last 7 years and they've never missed a beat.