First Look: Didja’s Local TV Streaming Service

One of the interesting things about being in the Silicon Valley is that startups are popping up all around you. Earlier this week I came across Didja, a startup providing a free service that streams local broadcast television, similar to Sling TV or DIRECTVNow. It includes a cloud DVR that allows you to record about 300 hours of shows.

Didja is based in Mountain View, California. As it turns out, they’re half a mile down the street from me and in a building that used to house one of my former clients!  Well, with such an auspicious location I had to see what it was all about.Didja’s service can be used on a number of devices. It can be run in a browser (Chrome or Firefox recommended), on TVs via ChromeCast or AppleTV, and on mobile devices via the LocalBTV app. The service is presently available in the San Francisco Bay Area and Phoenix. It should be noted that you can only stream within the local broadcast area. So if you’re in the San Francisco Bay Area, you can’t watch Phoenix channels, and vice-versa. And you can’t watch either if you’re in Los Angeles.

LocalBTV on iPhone and iPad

I’ve primarily been using the LocalBTV app on an iPhone SE and an iPad, so the observations here may not apply to other platforms.

On Apple devices, a first thing to note is that the LocalBTV isn’t a universal app. So when you go to install it on your iPad, you’ll need to look for the iPhone app. When run on an iPad, it runs as an iPhone app with the 1x/2x magnifier option. This isn’t all that bad since you’ll probably be watching shows most of the time, although it would be nice to use the additional screen real estate to display more guide information. Hopefully Didja has a universal app on the way.

When you first launch the app, you’re asked to create an account. You’ll also get a 30 day free trial of the cloud DVR service.

User Interface

The UI is elegant and simple, with three options in the tab bar to watch live TV, view the program guide, or browse your recordings. Settings can be changed via the gear icon in the upper right. Through the settings you can manage any recordings you’ve scheduled, and also customize the channel list. You can then choose to view all channels in the guide, or only your favorites. The channel selection, as others have noted, is presently limited and consists of mostly “tier 2” stations such as VietBay, Skylink, KPOP, ARTS and Retro. The major networks (ABC, NBC, CBS, FOX, CW) are presently absent.

When you first bring up the guide, you might be surprised to find the rows and columns swapped when compared to your typical grid guide. Each row displays the programming for a 30 minute time slot. By default a video window is displayed at the top of the screen, with five rows (two and a half hours) of guide data below it.

If you rotate the screen to landscape mode, the video window is scaled to full screen. To get a full-screen landscape guide, you first need to get it full-screen in portrait orientation. Pull up on the arrow between the video and guide portions of the screen. Once that’s done, you can rotate the device to landscape orientation. On an iPhone SE the landscape guide displays four channel’s worth of programming.

Overall, this is an interesting way to provide both surfing (portrait orientation with the video displayed) and browsing (landscape orientation with a full-screen guide).

Selecting a show from the guide brings up a dialog with the program’s description and watch/record options. (The Record option presumably would be absent if you’re outside the 30 day cloud DVR trial window and didn’t subscribe.) If you elect to record the show, you have the additional option of adding it to your library. Shows that aren’t in your library are automatically deleted after 28 days (and I would guess when you’re running out of cloud DVR space). If you select a show that’s part of a series, you have the option of recording the entire series or just that show (“Season Pass” functionality for you TiVoites).

When you first tune into a show, the portion that’s been broadcast to that point is available for viewing. This is an excellent feature missing from other streaming TV services such as DIRECTVNow, and a lifesaver if you tune in late – just seek back to the beginning. This also allows you to channel surf and never miss the beginning of a show you find interesting. (In addition to surfing through the guide, you can also swipe left or right on full-screen video mode to surf up/down the channel list.)

Picture Quality

Overall, the video quality is quite good. Most of the channels available on LocalBTV are broadcast in SD, so the resolution is most likely limited by the station feed. However KCSM 60.1, which broadcasts OTA in 1080i, was available. The quality via LocalBTV on an iPad was very good with a crisp picture and no noticeable encoding artifacts.

Some Rough Edges

While the viewing experience was overall good, every so often things would take a deep dive. One evening KCSM was basically unwatchable, with severe blocking every few seconds. The audio would frequently chirp or buzz at the same time the video would break up, suggesting that both the audio and video decoders were being fed corrupted data.  Since I was watching “live”, the player would periodically stop to buffer as well.

While I’m not really certain what the source of these errors are, they have the feel of a broadcast that’s been poorly received and subsequently not handled well in the transcoding stage.

It’s almost certain that Didja is transcoding the video, as broadcast stations don’t provide feeds amenable to streaming (both from a codec and adaptive bitrate standpoint). Ideally, the transcoder would perform error concealment to hide the audiovisual artifacts. If the signal is too corrupt, which was likely the case with the KCSM broadcast, the transcoder should take more aggressive actions. It could, for example, use silence for audio and repeat the last available frame for video. This would more accurately reflect how DTV receivers and televisions handle problem broadcasts. (It’s also how Entangle handles stream errors while live transcoding.) A viewer would then have the same experience in the LocalBTV app as watching Didja’s feed on a television, with no buffering or sped up playback.

In addition to a degraded audiovisual experience, the errors had another side-effect. During the period when Didja was having issues with KCSM, the programming played in the LocalBTV app did not match what was actually being broadcast. The LocalBTV guide showed “Growing a Greener World” from 5:30 – 6:00. I can vouch that this is correct, as I was watching KCSM via an antenna feed at the time.  What was actually showing on Local BTV was “P. Allen Smith’s Garden Home”, which aired from 5:00 to 5:30. LocalBTV started showing “Growing a Greener World” at about 5:50, roughly 20 minutes late. It would seem that as Didja was having issues receiving and/or transcoding the KCSM feed, it’s notion of time reflected the amount of stream that actually came out of the transcoder. That stream unfortunately had dropped some problematic bits that existed in the real world.

(Interestingly at 6:00, the programming did correct itself. “DW News”, which airs from 6:00 to 6:30, started playing in the LocalBTV app. Alas, a good portion of “Growing a Greener World” was dropped as a result.  And while the correct show was being shown, it still had severe playback issues. Rather than block noise, which was prevalent earlier in the evening, the video would play in spurts – it would play much faster than it should for a second, then pause for a couple seconds. The audio was absent while playback was in this mode.)

Unfortunately this issue was not confined to KCSM. On other occasions I’d experience it on other channels. This is something that Didja will need to address if it has ambitions to be a cord-cutter’s solution for the major networks. And especially if those are introduced in a paid service tier.

Unclean Aperture

An annoyance, at least in comparison to the KCSM-style playback issues, is that the video isn’t cropped properly. You end up seeing the border regions of the frame, which aren’t intended to be seen by the viewer. (What the player is displaying the “production aperture.” The part you’re supposed to see is a subset of that. The “clean aperture” is the portion that all display devices must show.) The lack of cropping is noticeable in a couple ways. Sometimes there’s a black border around the picture, with a fuzzy transition from picture to border.

A more distracting artifact is closed captioning scan lines. You can see them as the morse code-like dashes at the top of the video. This is a legacy of analog TV, when closed captioning was transmitted in the lines right above the picture.

If you watch the broadcast on a TV (e.g. via cable or antenna)  you’ll notice these artifacts are absent. The TV crops the borders of the frame and scales the rest to fill the screen.

Especially when you’re watching on a phone, it’d be nice for Didja to do the same and fill as much of the screen as possible with picture you’re supposed to see.

A Wish List

One of the things missing from LocalBTV is fast-forward and fast-rewind. To be fair, it’s also absent from other broadcast TV streaming services such as DIRECTVNow. And even TiVo hasn’t implemented it when streaming from their DVR to mobile devices. These trick modes aren’t as necessary when watching content from services such as Netflix or Amazon Prime, where you’re more likely to watch an entire program straight through (except maybe for the bathroom break pause). However for broadcast TV with commercials, trying to seek using a slider doesn’t really cut it. And fast-forwarding through commercials has the added benefit that you can see what you’re skimming. There’ve been many a time I’ve dropped out of fast-forward to watch an interesting commercial or movie trailer.

Another wish list item would be recording or downloading shows to a mobile device. The cloud is great, but not always available, for example when you’re on a plane. Or, as AT&T just demonstrated as I was writing this, when your ISP decides to go to lunch. It’s also useful when you’re on a road trip and don’t want to use your (perhaps not unlimited) data plan to stream shows.

Recording shows to a PC or NAS would also be a great thing, although I imagine there might be business reasons for not doing that. (It could eat into the cloud DVR service, for one.)

Some Parting Words…

LocalBTV is off to a good start and certainly a service worth keeping an eye on. Even if you elect not to subscribe to the DVR service, it has compelling features that make for a superior user experience. The ability to start playing back a show from the beginning (regardless of when you tune in) and pausing live TV are features absent in services such as DIRECTVNow.

If Didja adds the major OTA networks its service will make a fine addition to a cord cutter’s arsenal.

2 Replies to “First Look: Didja’s Local TV Streaming Service”

  1. I love all of your posts.
    I have a question regarding the “closed captioning lines” . I am using a relatively new device, AirTV, a network tuner, which allows use of a remote OTA antenna without running coax. One particular OTA channel displays the ” morse code pattern” across the very top of the display,( exactly the same as the picture in your post). You mention if watching on a TV, as opposed to iPhone/iPad, they are automatically cropped. I assume since I am watching this OTA channel via AirTV app on Apple TV, it isn’t automatically cropped by my Sony TV. My question is, is this the same issue you describe,… Should I recommend to AirTV that they might look into cropping this out, and re-sizing the picture in further updates to their app, or is this an issue with the Broadcaster as it is only on that particular channel, ( Retro TV) ?

    I appreciate any advice you can provide.

    1. The AirTV is probably doing the right thing in outputting the VBI/closed caption scan lines. There’s a difference between video played on a tablet or phone vs a TV. In tablets and phones the app controls the window where the video is displayed and everything in that window. All cropping has to be handled by the app. With a TV, cropping should happen at the TV side. DVD players, DVRs, etc. assume this. Their UIs are designed so that all the text, menus, etc. reside within the clean aperture. Take a look at for a good explanation of the production and clean aperture.

      When connected to an Apple TV, your TV may or may not be cropping the picture. It really depends on the TV. Some will default to a “dot-for-dot” mode, which means no cropping. Other TVs will crop the same as they would when displaying broadcast TV. There should be a setting (sometimes under “zoom modes” or similar) which will allow you to select dot-for-dot vs. various levels of cropping. That’d be the method I suggest for solving the problem. Some people do prefer to see the full production aperture, particularly for 720p or 1080i broadcasts. There’s “more picture”, though strictly speaking none of that extra picture makes a meaningful contribution to what you’re watching :-).

Comments are closed.