Why Sports Scores Are Coming Natively to Siri

If you haven’t been living under a rock for the past week or so, you’ve probably heard of my AssistantExtensions that bring sports scores to Siri. As of this morning, SiriNBA has been replaced with SiriSports. It’s basically the same as SiriNBA except with support for MLB and NHL scores. See a video of SiriSports in action here.

As you can imagine, I’ve been getting to know Siri pretty well and what I’ve learned is pretty exciting.

First, let me explain a little about how Siri works. When you say something to Siri, your voice recording is sent to Apple’s servers and transcribed into speech tokens. These speech tokens are basically just words. Apple’s servers interpret these speech tokens and send them, along with instructions, back to your device. Speech tokens are usually just one single word. However, there are some special cases where a speech token will be more than one word. For example, city names. In the screen shot below, you can see that when asking Siri for the weather, Apple’s servers understand that “New York City” is one thing and not three different words.

Siri understands that New York City is one thing, not three different words.

While testing SiriSports, I had to talk to Siri a lot. After implementing the ability to speak a team’s city along with the team name, I noticed something interesting. Siri understands sports teams as single speech tokens.

Siri understands that New York Yankees is not three distinct words.

Obviously, Siri does not currently support sports scores (without SiriSports). So, why else would this happen?

This isn’t the only reason that I believe sports scores are coming natively to Siri. ESPN recently released a developers API for accessing sports scores. Unfortunately, this API is only available to premium partners of ESPN. I contacted ESPN to see if they were willing to give me access for SiriSports (I know, it was a long-shot). Here’s how ESPN responded:

What's ESPN doing with Apple?

So, what exactly is ESPN working closely with Apple on? ESPN is owned by ABC which also owns Disney (which is very closely related with Apple). He may simply be referring to that. Or maybe, ESPN is going to be the one to provide Apple with sports scores. Who knows? I’m sure we’ll find out sooner or later.

Let me know what you think in the comments.

UPDATE (4/22/12): It looks like Siri no longer parses sports teams as single tokens. Could it be due to this blog post? Who knows…

Stay Away From Siri Ports. Seriously.

Not only will they waste your time, but they can be dangerous.

The, recently released, h1siri “port” is a perfect example. Over the past day I’ve spent some time dissecting it to figure out what they’ve done. Since their server is currently down (surprising) there’s really not that much that I can find out about it. However, here’s what I do know:

  • The debian package they are distributing only installed the Siri UI files. Nothing else. No MobileSubstrate tweaks.
  • The only change they made to the UI files is that they have Siri point to their own server (https://siri.cd-team.org).
  • I’m assuming that their server modifies the ACE request from your device by replacing the invalid authentication data with their own data which has been obtained from an iPhone 4S and then sends the request on to Apple’s servers.

Since their server is offline and they have announced on Twitter that they are looking for a 4S owner to supply them with new authentication data, it’s safe to assume that the one they had been using was blacklisted. Think of it this way, thousands (hundreds of thousands?) of people installed h1siri on their devices. Apple noticed that the same authentication data was being used hundreds of thousands of times from different devices in different parts of the world. Seeing this, Apple blacklisted the device. So now this iPhone 4S may have lost it’s Siri capabilities forever. The next time they get some 4S authentication data, the same thing will happen again.

In addition to what I’ve said so far, using h1siri is a security risk. Siri is very verbose when communicating with its server. Everything you say to Siri is transmitted. Your current location is transmitted. Your name and maybe even contacts are transmitted.

For example, maybe you’re composing a text message to someone with very sensitive information, or maybe your dictating something to Siri. All of this is transmitted.

While there’s no reason to assume that the people behind h1siri will maliciously use your personal data, that’s not a risk that I’m willing to take, nor should you be. This, and the fact that their authentication data will be blacklisted in minutes is reason enough for me to stay very far away from h1siri.

 

Addendum: Just to add some validity to this post, in @chpwn’s Spire tweak he warns of the same thing right in the preferences. You’ll be better off hosting your own SiriProxy.

Why Siri Ports are not ready for distribution

To get right into it, right now piracy is still the main issue. Without a 4S jailbreak there is no way to obtain the necessary files without an actual iPhone 4S and a developer certificate. Distributing these copyrighted files would be illegal.

The second reason is that it really isn’t practical for every day use. The validation data required to authenticate with Apple’s server expires every 24 hours. So every 24 hours you need to have your friend help you get the refreshed data. Also, it’s not like your getting your “own” Siri. Your device and the device you go the data from cannot use Siri at the same time. If you do, you’ll both just get the spinning purple light around the microphone. And in my testing, Siri on my device randomly reverted to calling me by the name of the person whose data I’m using.

While a Siri port will not come from me or the other people who have gotten it working this past week, I am certain that we will see it from @chpwn and @stroughtonsmith most likely once the 4S jailbreak becomes public.

Siri Working on iPod touch

Well, I’ve managed to get Siri working 100% on my iPod touch (and theoretically any other iOS device that supports iOS 5). I’m still working on a workaround for the validation key expiration issue. Even if I do figure that out, I probably won’t release it because it still requires piracy to distribute. The only way around that is an iPhone 4S jailbreak so you can get the vfdecrypt keys and dump the necessary Siri files yourself. Anyway, here’s a video showing it working on my iPod touch.

Siri Protocol Cracked

Just a few days ago mobile app development firm applidium managed to crack the Siri protocol. While this does not mean anything for Siri on older iOS devices, it’s still quite interesting. What they’ve done allows virtually any device to interact with Siri’s servers. Unfortunately, to accomplish this you’ll need some data from a real iPhone 4S. Applidium’s tutorial for doing this is not very in-depth, so I thought I’d post a slightly more in-depth guide to getting the necessary data from an iPhone 4S. This guide assumes that you’ll be running Mac OS X 10.7.2, but in theory any UNIX operating system should work with a few simple tweaks.

Addendum: 

I’ve decided that it would be for the best if I were to remove this tutorial. When I initially wrote this, it was meant to be used for fun and experimentation, not for porting Siri to a non-4S device. I am certain that in the future if a full port of Siri is released to the public, the methods shown in this tutorial will be irrelevant. A Siri port cannot be distributed using the authentication ID’s from one iPhone 4S (you can read more about this here). If a full Siri port is ever released, it will undoubtedly be because someone figured out how to generate valid authentication keys on a non-4S device. Until then, all we can do is wait.