[HN Gopher] Show HN: iPod.js - An online iPod that connects to S...
       ___________________________________________________________________
        
       Show HN: iPod.js - An online iPod that connects to Spotify and
       Apple Music
        
       Author : tonyhawkins
       Score  : 557 points
       Date   : 2021-06-23 16:04 UTC (6 hours ago)
        
 (HTM) web link (tannerv.com)
 (TXT) w3m dump (tannerv.com)
        
       | Lifescape wrote:
       | whoa this is awesome! thanks for making the source available too
       | :) https://github.com/tvillarete/ipod-classic-js
        
       | justusthane wrote:
       | This is really cool. It's amazing how "realistic" the clickwheel
       | feels--it instantly transported me back to actually using an
       | iPod. Also, there's something poetic about emulating the
       | clickwheel on the interface that replaced it :)
        
         | beeandapenguin wrote:
         | +1 Would be super cool if this integrated with the Battery
         | Status API for even more realism!
         | 
         | Looks like the spec is getting updated with more modern
         | security and privacy practices.
         | 
         | https://www.w3.org/TR/battery-status/
        
         | racl101 wrote:
         | I still have my original iPods. The original and the mini
         | chromatic ones. When I'm on the go and or in a gym and I need
         | to play music, nothing beats a simple mp3 player. Don't want
         | the bulk of the phone. Don't want to have to touch a phone
         | screen and engage with it.
         | 
         | I'd rather just reach into my pocket and press buttons.
        
           | websap wrote:
           | Airpods + iPhone/Apple Watch. No wires, nothing to put in
           | your pockets when you're lifting and running. Who loads an
           | MP3 player?
        
           | scatters wrote:
           | I think smartwatches fill that niche now - at least those
           | models with physical buttons. I'm actually impressed by how
           | ergonomic the music listening experience on my Garmin is.
        
             | zeroonetwothree wrote:
             | I don't like wearing a watch So for me the MP3 player is
             | still great
        
             | smoldesu wrote:
             | I never thought I'd say this, but I actually agree. I have
             | a Fossil Gen 5 that I use for the exact same purpose, and
             | it works great with Bluetooth headphones.
        
             | fumar wrote:
             | Right, wearing an Apple Watch + AirPods is the modern iPod
             | experience to me. I can leave my house without a smartphone
             | and take a stroll or bike ride or skateboard etc with
             | music. The Apple Watch crown provides that tactile feel
             | missing from smartphones. I like how easy it is to turn up
             | the volume by quickly rotating the crown up or down.
        
               | notJim wrote:
               | Do you have to have the watch with LTE, or does it
               | actually cache music locally?
        
               | fumar wrote:
               | LTE but you can download music when on Wifi and keep it
               | stored on the watch.
        
         | kfarr wrote:
         | Agreed! And given the source code is available maybe someone
         | could hack together a prototype of this Onion classic:
         | https://youtu.be/9BnLbv6QYcA
        
         | dylan604 wrote:
         | "Sadly, this only works on Chrome Desktop" when clicking the
         | sign in to Spotify on my iPhone. definitely doesn't have that
         | "it just works feel" in that regard. However, driving the click
         | wheel is fun. I did instinctively click on the buttons that
         | would pop up in the menu by clicking them directly the first
         | time rather than spinning the wheel to get to them. Just shows
         | how much more powerful the touch screen is.
        
           | mparlane wrote:
           | I think in terms of scrolling through the big lists, the
           | wheel was a far superior scrolling device than touch scroll
           | is.
        
         | davidmurdoch wrote:
         | Is the click wheel "feel" experience only on iOS? I don't get
         | any haptic feedback on Android
        
           | muhammadusman wrote:
           | I don't feel the click haptic feedback on iOS with iPhone 12
        
             | justusthane wrote:
             | No, no haptic feedback for me either. It would be
             | interesting to try, but honestly it might make it feel more
             | gimmicky if not done perfectly.
        
               | nuccy wrote:
               | Depends on the phone, high-end phones (iPhone obviously,
               | but also Samsung S XYZ, et al.) have quite good
               | "vibration" these days, since it is produced by more
               | sophisticated mechanism [1] than just rotating motor.
               | 
               | [1] https://www.ifixit.com/News/16768/apple-taptic-
               | engine-haptic...
        
           | nuccy wrote:
           | No vibration feedback on Android, something like
           | navigator.vibrate(...) can be used for that [1]
           | 
           | [1] https://developer.mozilla.org/en-
           | US/docs/Web/API/Navigator/v... or
           | https://googlechrome.github.io/samples/vibration/
        
         | breck wrote:
         | > transported me back
         | 
         | I felt the same way! It was 2003 again. Cool stuff. Thanks to
         | the OP!
        
       | ShaneMcGowan wrote:
       | Every time I pressed a button my brain was expecting to hear and
       | feel a click
        
         | CleanCoder wrote:
         | Have you tried clicking on it?
        
           | davidmurdoch wrote:
           | There is no click or vibration on Android.
        
         | runawaybottle wrote:
         | I forgot how intuitive that wheel really felt.
        
       | smnscu wrote:
       | How do you even get the _feel_ of the device so right? I'm
       | perplexed, such a great project. I started using it unironically
       | to play music, I'd totally pay for a Mac/iOS app haha.
        
         | btown wrote:
         | Simpler than one might think - once you do the math to project
         | each touch/mouse event down to an angle, you just need to
         | quantize the angle to a certain number of discrete options
         | (which you can measure on an actual device), look at the event
         | stream of such angle events pairwise, and take the sign of the
         | pairwise difference as right/left or up/down!
         | 
         | The much harder part when designing the iPods themselves was to
         | build a robust touch sensor given the hardware of the day, and
         | actually come up with pleasing dimensions and quantization
         | parameters as a designer!
         | 
         | Code for this implementation:
         | https://github.com/tvillarete/ipod-classic-js/blob/master/sr...
        
           | lxe wrote:
           | > Simpler than one might think
           | 
           | > ... you just need to quantize the angle ... look at the
           | event stream ... and take the sign of the pairwise difference
           | 
           | This is harder than I thought
        
           | corobo wrote:
           | "just" haha
        
             | jonny_eh wrote:
             | That "just" is doing a looot of work.
        
               | mypalmike wrote:
               | Not really. It's just atan2, modulo, and subtraction.
        
               | btown wrote:
               | I was going to respond saying "at least it's less work
               | than mimicking modern Apple momentum scrolling..." but in
               | fact I'd argue that's simpler than one might expect as
               | well! https://medium.com/homullus/recreating-native-ios-
               | scroll-and...
        
         | jack2222 wrote:
         | Taking nothing away from the maker of this, but cried must also
         | go to Apple for the original UX too and how well designed that
         | is that copying it works so well too.
        
         | rileytg wrote:
         | I would pay for the app just to get the haptic feedback!
        
           | y2bd wrote:
           | iirc there was an iPod-style app on the Apple App Store for a
           | bit around a year ago, but it was shortly after taken down. I
           | don't know if the developer came out with an official
           | statement, but I imagine Apple had some copyright grievances.
           | 
           | It did have haptic feedback on the wheel which was cool,
           | although I think this web implementation actually does a
           | better job of nailing the motion and feel of the click wheel
           | itself.
        
             | dylan604 wrote:
             | Should make one that looks like a Zune!!
        
             | rileytg wrote:
             | ah ya of course you can't put an ipod on apples app store!
             | 
             | looks like you could maybe use the Vibrate API for some
             | andriod browsers...
        
       | bg_k wrote:
       | Nice work. I kept clicking on the labels and got so upset that it
       | didn't work lol. Those who have the same issue, use the Scroll
       | Wheel!!
        
       | LegitShady wrote:
       | Still a better interface than youtube music, the app for which
       | still doesn't have a horizontal screen axis mode six months after
       | google music shut down. the web interface can't disable videos
       | and play music only, while the app can.
       | 
       | I don't understand google's approach to youtube music. Maybe they
       | secretly want it to fail.
        
       | abanayev wrote:
       | Awesome idea, and even more awesome execution!
        
       | aaabbleco wrote:
       | Love it. Clean and simple as the original. It takes me back to
       | when I had mine!
        
       | numpad0 wrote:
       | _Where's the back button?_ - took me half a second to dust off
       | memories. Also it's uncannily snappy compared to how I remember
       | it!
        
         | matsemann wrote:
         | Might be because I never owned one myself, but I've always felt
         | the interface incredibly clunky and the navigation hard to
         | grasp. It's not something intuitive you know how to use just by
         | looking at it.
        
       | Cipater wrote:
       | This is so well done. Such a pleasure to use. Responds just like
       | an iPod Classic did to the point I find myself anticipating the
       | click sound on the wheel.
       | 
       | Amazing work.
        
       | Whiteshadow12 wrote:
       | Nice touch adding pong (brick).
        
         | freeqaz wrote:
         | I'm ready for them to add a level 2 now :P
        
         | qwertygnu wrote:
         | Even has the same bug where the ball glitches through a few
         | rows!!
        
       | android2222 wrote:
       | Curious if Apple would even allow this as an app on their store?
        
       | hichamino wrote:
       | Does not respond on android .. google chrome. Any solutions ?
        
       | meibo wrote:
       | This is great, good job.
       | 
       | Some bugs I've noticed(Chrome 90 on Android):
       | 
       | * When looking at a list of albums, using the clickwheel to
       | scroll won't actually scroll the list
       | 
       | * With Spotify, only my public playlists are shown
       | 
       | Thanks!
        
       | arickuter99 wrote:
       | Wow. This is amazing. Well done
        
       | mcast wrote:
       | The iPod reflection on a white page brought me back to Apple's
       | late 2000s marketing pages before they became so interactive.
        
       | hichamino wrote:
       | Does not respond on android .. google chrome . Any solutions ?
        
         | turbocon wrote:
         | Weird, works for me on android, both Chrome and Firefox
        
       | jdlyga wrote:
       | I miss how smooth those gradients look
        
         | andrepd wrote:
         | This is so much more pleasant than flat interfaces.
        
         | schmorptron wrote:
         | I never owned an ipod so I don't remember the UI at all, but
         | from the now playing screen the only thing that looks like it
         | has a gradient is the top bar[1], all of the menu selection
         | indicators looks solid blue as well. Am I missing something?
         | 
         | [1]https://i.imgur.com/y4s4o24.png
        
           | schmorptron wrote:
           | oh wait nah I see it now, the playing bar has a very light
           | one. Looks nice!
        
       | harshoninternet wrote:
       | this is absolutely amazing.
        
       | KMnO4 wrote:
       | This is awesome! My only request is to polish it _just_ a bit
       | more when you add it to the home screen. I'd love for this to
       | feel like a native app.
       | 
       | Nominally:
       | 
       | - The default title when adding to the Home Screen is "React
       | App".
       | 
       | - The icon could be better by choosing something in 1:1 aspect
       | ratio. Maybe just the click wheel?
       | 
       | - When opened from the home screen it correctly loads without
       | displaying the browsers nav bar, but the dimensions are slightly
       | skewed so it doesn't fill the screen.
        
       | rglover wrote:
       | I was just thinking about how much I missed this thing earlier.
       | Beautiful design and interaction.
        
       | [deleted]
        
       | chirau wrote:
       | Unfortunately it just signs me in Spotify but does not import
       | anything. Can't play anything either. Keeps asking me to sign in.
        
         | neogodless wrote:
         | Do you have a free account? I had to pop open Developer Tools
         | to see that there's an error if you don't have a paid account
         | that prevents the iPod.js from connecting to your account.
        
       | phreack wrote:
       | I can't believe how there's no buttons on devices anymore. This
       | is a reminder on how much I miss them! I remember when I'd clip a
       | really small iPod to my chest between layers of clothes and just
       | move through songs by pressing it whenever. First and last time I
       | felt cyborg-ish with technology.
        
       | mastrsushi wrote:
       | Mexican teenagers from 2008 with jailbroken PSPs would be proud.
        
       | psychomugs wrote:
       | This is awesome. It's heinous how confusing and buggy the stock
       | interfaces are. Instantly added to my home screen.
        
       | sirfrankiecrisp wrote:
       | Maybe a bit of a dumb question, but how can one be sure that this
       | doesn't steal my credentials when logging in with spotify? It's
       | open source, so I guess someone would probably have figured it
       | out if it did by now, but is there a way to be sure or is it even
       | possible?
        
         | prezjordan wrote:
         | Not a dumb question, very much appreciate you keeping an eye
         | out for your password security. It uses an OAuth flow so you're
         | actually entering your credentials on accounts.spotify.com
         | (Spotify-owned) and then Spotify gives this developer a token
         | (rather than a username+password) to access your data (usually
         | a very limited subset of data outlined on the login page).
        
           | ramenmeal wrote:
           | any idea why it uses ngrok when I go to the sign in flow?
           | Chrome is saying the connection is insecure.
        
         | ike0790 wrote:
         | how can you be sure that any web site asking for google
         | authentication doesn't "steal" your goolge data?
         | 
         | The reason is because of a protocol called Oath2.
        
           | sirfrankiecrisp wrote:
           | Nice, thanks! I have heared of OAuth2 before, but didn't know
           | what it was for... Now I know:)
        
       | vcoelho wrote:
       | I never had one. Was clicking on the >>| and thinking it was
       | bugged because it won't navigate between the items on menu...
        
       | linkrboat wrote:
       | lol soooo cool. takes me back
        
       | aaroninsf wrote:
       | Does it not make the ticky clicking sound?
        
       | nmstoker wrote:
       | Whilst it looks nice, is no one else concerned with passing
       | details to some unknown site? It doesn't seem to have any direct
       | way to make contact nor is there a privacy policy (nor is there
       | anything obviously relevant in the GitHub repo for the code
       | either)
        
       | urbandw311er wrote:
       | I would like to complain about the game of Brick that refuses to
       | award me a victory despite clearing away all the bricks.
       | 
       | Can I get my money back please?
        
         | jgtrosh wrote:
         | Also, it always bounces at the same angle regardless of where
         | it bounced on the paddle, which makes it really long and
         | boring. The lack of payoff is even more annoying.
        
       | enigami wrote:
       | This is just awesome and the experience from my Phone felt like I
       | went back in time. Any possibilities of releasing as an Android
       | App, I would actually pay for it
        
       | AzN1337c0d3r wrote:
       | Firefox appears to be blocking Cross Origins Requests so cannot
       | actually successfully sign-in:
       | 
       | Cross-Origin Request Blocked: The Same Origin Policy disallows
       | reading the remote resource at
       | https://apresolve.spotify.com/?type=dealer&type=spclient.
       | (Reason: CORS request did not succeed).
        
         | neogodless wrote:
         | Firefox on Windows 10 with uBlock Origin (which I disabled on
         | this page) and Multi-Account Containers. I'm not a Spotify paid
         | user, and the error I get is different:
         | 
         | > Cannot register to Track Playback with non-premium user.
         | 
         | However, the "iPod" just keeps telling the user to sign in. It
         | might be good to have some indicator that you need a paid
         | account to use Spotify on this iPod.
        
         | llacb47 wrote:
         | That's also the message you get when a content blocker blocks a
         | request. Could be uBlock Origin or tracking protection,
         | probably not CORS.
        
         | zachberger wrote:
         | I had no issue on macOS 11.4, Firefox 89.0.1 (64-bit arm)
        
         | amatecha wrote:
         | Could be due to Strict privacy settings?
        
         | Cipater wrote:
         | Like the other reply, I had no issue at all using it on Firefox
         | on Windows. Even with a whole host of privacy addons and
         | settings enabled.
        
       | rileytg wrote:
       | anybody notice ngrok when singing in? wonder what that's about...
        
       | emptyparadise wrote:
       | I'd love this as a phone app.
        
       | the_arun wrote:
       | This is definitely a good project.. I was pleasantly surprised to
       | see - github link as navigation item.
       | 
       | Settings -> About -> Github Repo
        
       | IAmMaulik wrote:
       | Awesome tool dude. Brings back a lot of old memories
        
       | HipstaJules wrote:
       | This is so pretty. I love it! Thanks for making it!
        
       | filmgirlcw wrote:
       | This is great work! Thanks for putting the source on GitHub too!!
       | This brings back so many memories of a simpler time.
        
       | hooloovoo_zoo wrote:
       | Others would know more, but surely this is poking the Apple legal
       | department bear? I once tried to have a company print a single
       | ping-pong paddle with the name iPaddle and they refused.
        
       | jamesbfb wrote:
       | Oh, wow! This brings back a wave of nostalgia. This is great! If
       | only you could get some haptic feedback happening, it would be
       | the icing on the cake.
        
       | gherkinnn wrote:
       | Great execution! The click wheel feels really good on iOS.
        
       | msackmann wrote:
       | Really amazing! Great work, indeed pretty close to the original
       | feeling :-)
        
       | xrd wrote:
       | I don't have Apple Music, but my wife does. If she,
       | hypothetically, logged in on my Android phone, could I use her
       | library?
        
         | ribosometronome wrote:
         | There's an app for Android, as well.
        
         | tshaddox wrote:
         | I don't see why not. There's an official web version at
         | music.apple.com. They probably prevent multiple simultaneous
         | streams on the same account at the same time though.
        
           | vestrigi wrote:
           | I found out it actually allows me to play on the same account
           | on two separate devices. The official apple music apps
           | reliably stop my attempts to abuse my one person membership.
           | Maybe this means that authorised applications aren't checked
           | as thoroughly for this.
        
             | zoover2020 wrote:
             | Ssh, Apple engineers are silently reading along!
        
             | tshaddox wrote:
             | Yeah, they might just be lenient for now with the MusicKit
             | JS API. I know for commercial partners they seem to be
             | pretty strict.
        
       | mraza007 wrote:
       | If they brought an iPod back with spotify and apple music I would
       | definitely buy it
       | 
       | Anyways great execution and loved how seamless it works really
       | cool project
        
         | isoprophlex wrote:
         | Now that you mention it, I REALLY want a piece of hardware like
         | this..!
        
           | McAtNite wrote:
           | Something like this? https://bemighty.com
           | 
           | It's not active live streaming, just downloading your
           | playlists.
        
             | worldmerge wrote:
             | That's a cool piece of tech. It's unfortunate it doesn't
             | work with mp3s ( from the faq) as well.
        
               | spicybright wrote:
               | Wow, that's insanely awful, at least in my opinion. I
               | loved my iPod shuffle. Pretty much the exact same form
               | factor as this.
        
         | Tijdreiziger wrote:
         | Sony sells touchscreen Walkmans these days. AFAIK they're based
         | on Android.
        
       ___________________________________________________________________
       (page generated 2021-06-23 23:00 UTC)