Waxy.org
Waxy.org is the sandbox of Andy Baio, a writer and tech entrepreneur in Portland, OR. I work with Expert Labs, helped build Kickstarter, founded Upcoming, made an album, and other stuff too.

Contact Me: Email, AOL IM, or follow me on Twitter.

How I Indexed The Daily

Posted Feb 23, 2011

For the last three weeks, I've indexed The Daily. Now that my free trial's up, I've had an intimate look at what they have to offer and, sad to say, I don't plan on subscribing. As a result, I'm ending The Daily: Indexed, my unofficial table of contents for every article they published publicly.

I'm surprised and grateful that The Daily executive and legal team never tried to shut it down. On the contrary, when asked directly about it, publisher Greg Clayman said, "If people like our content enough to put it together in a blog and share it with folks, that's great! It drives people back to us." They seem like a nice bunch of folks, and I hope they succeed with their big publishing experiment.

But now that I'm ending it, I can finally address the most common question — how did I do it?


The Daily: Indexed is just a list of article headlines, bylines, and links to each article on The Daily's official website. Anyone can grab the links from the Daily iPad app by clicking each article's "Share by Email" button, but that would've taken me far too long. So, how to automate the process?

When you first start The Daily application, it connects to their central server to check for a new edition, and then downloads a 1.5MB JSON file with the complete metadata for that issue. It includes everything — the complete text of the issue, layout metadata, and the public URLs.

But how can you get access to that file? My first attempt was to proxy all of the iPad's traffic through my laptop and use Wireshark to inspect it. As it turns out, The Daily encrypts all traffic between your iPad and their servers. I was able to see connections being made to various servers, but couldn't see what was being sent.

Enter Charles, a brilliantly-designed web debugging proxy for Mac, Windows, and Linux. By default, Charles will listen to all of your HTTP network traffic and show you simple, but powerful, views of all your web requests. But it can also act as an SSL proxy, sitting in the middle of previously-secure transactions between your browser and an SSL server.

After grabbing the JSON, I was able to write a simple Python script to extract the metadata I needed and spit out the HTML for use on the Tumblr page. Here's how to do it.


Configuring Charles

1. Download and install Charles on your desktop machine. On your iPad, navigate to http://charlesproxy.com/charles.crt to trust Charles' SSL certificate.

2. For Mac users, start Network Utility to get your desktop's local IP address. Start your iPad, make sure it's on the same wireless network as your desktop, and go into Settings>Network>Wi-Fi. Select the wireless network, and click the right arrow next to it to configure advanced settings. Under "HTTP Proxy," select "Manual." Enter the IP address of your desktop for "Server" and enter in "8888" for the port.

3. Now, start Charles on your desktop and, on the iPad, try loading any website. You should see assets from that website appear in Charles. If so, you're ready to sniff The Daily's iPad app.


Indexing the Daily

1. Start the Daily app on the iPad. Wait for it to download today's issue. In Charles, drill down to https://app.thedaily.com/ipad/v1/issue/current, and select "JSON Text."

2. Copy and paste the raw JSON into a text file.

3. This Python script takes the JSON file as input, and spits out a snippet of HTML suitable for blogging. I simply pasted the output from that script into Tumblr, made a thumbnail of the cover, and published.


The End

So, that's it! Hope that was helpful. If any fan of The Daily out there wants to take over publishing duties, I'll happily pass the Tumblr blog on to you.

15 Comments (Add Yours)

Feb 23, 2011
10:54 AM  
Julien wrote:

Wouldn't it be much much simpler if the daily had feeds?


Feb 23, 2011
11:10 AM  
Andy Baio wrote:

They want everyone reading the articles on their iPads, so I wouldn't hold my breath for RSS.


Feb 23, 2011
1:10 PM  
Aaron wrote:

Wow, a 1.5 MB JSON file! Is that compressed, or uncompressed? Wouldn't it make more sense to just grab a ToC file, and then start streaming in articles in the background (with top/front page stuff coming first)?


Feb 23, 2011
2:56 PM  
Kosso wrote:

Great stuff! I was looking into doing something like this. Thanks for bringing Charles to my attention! Very useful indeed. I've been looking for a tool like this for quite some time! :)


Feb 23, 2011
4:30 PM  
KFR wrote:

thanks for temp service and doc


Feb 24, 2011
2:25 AM  
Rounak Jain wrote:

Got to know of two really nice tools. Thanks :)


Feb 24, 2011
5:06 AM  
Marcelo wrote:

In my comment to your original post about the Daily indexed, I said "Nice trick". Now, knowing the details of how you did it, I say again: Nice trick!
I also want to say thanks for calling my attention to Charles application.


Feb 24, 2011
7:11 AM  
Dan Christ wrote:

Great simple solution. Really liked to read how you solved this riddle, and then shared the results. I'll be sorry to see the index go.


Feb 24, 2011
11:15 AM  
Noah wrote:

May I send you money to continue your subscription (and this website)? I checked it every day and now I'm kind of bummed...


Feb 24, 2011
3:02 PM  
Andy Baio wrote:

Noah: Sorry, I'm out of the indexing game! Hopefully, someone reading this will step up to the plate.


Feb 25, 2011
1:59 PM  
Adam wrote:

Curious to see that the first few days of The Daily's web content was actually text-based (you could copy and paste it), but a few days into it they switched to just posting screenshots from the app instead.


Feb 25, 2011
2:36 PM  
Andy Baio wrote:

Yeah, that's part of why I wasn't interested in continuing the index. Originally, the index helped search engines index the content, but there's nothing much to index with screenshots alone.


Feb 25, 2011
4:49 PM  
pascal wrote:

And you've pointed out a common security issue: the Daily app should have been checking the identity of the server's certificate, but instead it just made sure there was any kind of encrypted connection. So if any of the certificates in the iPad's store is breached, the app is vulnerable (I don't have it, but I'm guessing unlike in a browser, it doesn't allow the user to check the server's identity?)


Mar 3, 2011
7:50 AM  
moose wrote:

Can someone make a Yahoo pipes feed for The Daily? Wouldn't that make more sense?


Mar 31, 2011
12:51 AM  
rash wrote:

Yes, feeds can be more easily indexed than pages. It's a good idea, moose.


 

Leave a comment





Waxy Links
Ads via The Deck
May 21, 2012
Makies — customizable 3D printed doll creator, founded by Alice Taylor
May 20, 2012
Euphony — piano visualization built on three.js and MIDI.js, source is on Github
Paul Lamere calculates the most musical American cities, per capita — using the Echonest API and the top 50,000 artists
Endless, Nameless — Adam Cadre's new interactive fiction inspired by BBSes and old-school text adventures
Community's 8-bit episode on Hulu — chock full of retro references, from Mega Man to Minecraft
May 19, 2012
Dan Harmon on getting fired from Community — a damn shame, this guy's the soul of the show; I can't believe he only owns 10%
Benjamin Valentine's PERFECTION — submit your own to see our collective attempts (via)
Super Chemical Bros. — the classic Star Guitar video remade in Mario (via)
May 18, 2012
What Love Looks Like — the physics of relationships
io9 charts how visions of the future changed over time — tracking how near- or distant-future science fiction is, decade by decade
How Facebook hacked the NASDAQ button to push an Open Graph action — "Mark listed a company on NASDAQ"
NYT visualization of the Facebook IPO vs. historical IPOs — 60% of IPOs since 2010 have had negative returns so far (via)
May 17, 2012
Nekogames' Parameters — abstract, but shockingly good, casual RPG; figuring out the rules is part of the fun
Law & Order & Food — "you have the right to remain delicious"
Ill Doctrine on hip hop conspiracy theories — and, more critically, the rise of gangsta rap and incarceration rates
May 16, 2012
Ze Frank on finishing — unblinking inspiration
Trailer for Ed Piskor's WIZZYWIG — awesome graphic novel inspired by real-life hackers, I highly recommend buying it
May 15, 2012
Ignore Hitler — Draw Something spawns a meme; I like the meta one (via)
Austin Seraphin on learning echolocation — he's a real-life Daredevil
Mat Honan's feature on Yahoo's mismanagement of Flickr — a depressing read, especially while seeing the team release great new features
May 14, 2012
Make interviews Bunnie Huang on the end of Chumby — sad end to a promising product, I received one of the prototypes at Foo Camp in 2006
Rebecca Sugar's Singles — file under: scenarios I'd like to play in a videogame
SMBC on hell — sounds about right
GameBoy Color emulator in JS — the source is on Github (via)
60,000 Dominoes — 65 hours over eight days; the blooper reel was hypnotic (via)
OAuth Is Your Future — Dan Hon snaps some screenshots from the near future
May 13, 2012
Fracuum — winner of Ludum Dare 23; every winner is worth playing
May 11, 2012
Welcome to Life — "the Singularity, ruined by lawyers" (via)
BusinessWeek on the post-Kickstarter life of Diaspora — the founders talk about the Ilya's tragic suicide for the first time
Anachronism detection in Mad Men episodes — language studies from the person who did the frequency analysis for Downtown Abbey (via)

Andy Baio lives here. Some rights reserved, for your pleasure.