YouTube has been racking up a long list of features awaiting release – some discovered in teardowns and others have even been announced. The version that began rolling out late yesterday doesn't appear to have introduced anything like live broadcasts or a wide release of the quick seek button, but it does add to the list of things we know are coming. A teardown of the APK turns up evidence of a new feature to intelligently fill a device with videos for offline enjoyment, online polling for live broadcast viewers, and Picture-in-Picture support on Android TV.

Teardown

Disclaimer: Teardowns are based on evidence found inside of apks (Android's application package) and are necessarily speculative and usually based on incomplete information. It's possible that the guesses made here are totally and completely wrong. Even when predictions are correct, there is always a chance that plans could change or may be canceled entirely. Much like rumors, nothing is certain until it's officially announced and released.

The features discussed below are probably not live yet, or may only be live for a small percentage of users. Unless stated otherwise, don't expect to see these features if you install the apk.

AutoOffline

Last year, as I was waiting in line to board a plane after covering CES, I anxiously watched the YouTube app as a set of progress bars slowly–very slowly–crept from one end to the other. I had loaded a decent playlist to enjoy on my flight to Las Vegas, but forgot to reload some new videos for the return trip. Not all of them finished, but I had enough to make it to my layover.

It's not hard to plan ahead for some things, but you're not always going to remember to do little chores, or you simply might not have enough time when it counts. To possibly save others from a situation like I was in, YouTube appears to be working on a new feature called AutoOffline. In short, YouTube will be able to automatically save videos to a user's phone each day for offline playback.

AutoOffline text

<string name="auto_offline_disabled_empty_message_text">Daily Free Videos is disabled. Go to settings to enable.</string>
<string name="auto_offline_enabled_empty_message_text">Videos will be saved shortly.</string>
<string name="auto_offline_videos_title">Daily free videos</string>

<string name="pref_developer_trigger_auto_offline_retry">AutoOffline returned RETRY</string>
<string name="pref_developer_trigger_auto_offline_success">AutoOffline returned DONE</string>
<string name="pref_developer_trigger_auto_offline_summary">Call the AutoOfflineController immediately. Does not do anything if not in experiment.</string>
<string name="pref_developer_trigger_auto_offline_title">Trigger AutoOffline</string>

Think this sounds familiar? It probably should. The YouTube Music app for Red subscribers offers precisely the same feature under the moniker Offline Mixtape. The regular YouTube app will obviously lean away from storing exclusively music videos, but the text doesn't specify how they are chosen.

These strings would seem to suggest new videos are chosen and downloaded daily, and may only include those that don't have a price attached to them. If you're wondering about setting storage limits, maybe download schedules, permitted connection types, and whatever other options you might care about... Sorry, you're not going to see those answers just yet. It's pretty clear that it's not ready to launch, so those details will have to come with future updates..

Polling your audience

While YouTube has been inexplicably quiet about details or a timeframe to add live broadcasting to its mobile app, there's still work going into building out a feature set that goes beyond simple video streaming. The latest update includes a pair of new layouts that represent an interface for setting up question and answer polls for viewers.

quantum_ic_poll_grey600_24

code

Added to: /layout/backstage_post_dialog_fragment.xml
<com.google.android.libraries.youtube.comment.ui.BackstagePollEditorView android:id="@id/poll_editor" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_column="0" android:layout_row="3" android:layout_columnSpan="2" />

<ImageView android:id="@id/attach_poll_button" android:paddingLeft="@dimen/post_dialog_action_button_padding" android:paddingTop="@dimen/post_dialog_action_button_padding_top" android:paddingRight="@dimen/post_dialog_action_button_padding" android:paddingBottom="@dimen/post_dialog_action_button_padding_bottom" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/quantum_ic_poll_grey600_24" />

From: /layout/backstage_poll_editor_create_option.xml
<com.google.android.libraries.youtube.common.ui.YouTubeTextView android:textAppearance="?textAppearanceButton" android:textColor="?colorPrimaryAlternate" android:id="@id/create_option_button" android:background="@drawable/top_border" android:paddingLeft="14.0dip" android:paddingTop="8.0dip" android:paddingRight="12.0dip" android:paddingBottom="8.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" _xmlns:android="http://schemas.android.com/apk/res/android" xmlns:_xmlns="xmlns" xmlns:android="http://schemas.android.com/apk/res/android" />

From: /layout/backstage_poll_editor_option.xml
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:background="@drawable/top_border" android:paddingLeft="10.0dip" android:paddingTop="6.0dip" android:paddingRight="12.0dip" android:paddingBottom="6.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" _xmlns:android="http://schemas.android.com/apk/res/android" xmlns:_xmlns="xmlns"
xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView android:id="@id/remove_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/quantum_ic_close_grey600_24" android:contentDescription="@string/accessibility_poll_remove_option" />
<EditText android:textAppearance="?textAppearanceBody1" android:id="@id/option_text" android:background="@null" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="6.0dip" android:layout_marginRight="6.0dip" android:maxLines="1" android:layout_weight="1.0" android:inputType="text" />
<com.google.android.libraries.youtube.common.ui.YouTubeTextView android:textAppearance="?textAppearanceCaption" android:id="@id/character_counter" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>

The layouts currently consist of a button to begin a poll, a couple more to add and remove options, and a text field with character counter. It's not very elaborate, and may not even be finished yet. Nevertheless, it's clear YouTube is interested in giving channel operators a way to get quick feedback from their audiences that doesn't involve wading through the turmoil of a comments section.

Picture-in-Picture support

This one shouldn't require much explanation. Actually, it will, but we'll get to that. Anyway, the point is quite simple: YouTube is going to support Picture-in-Picture (PiP). A flag has been added to WatchWhileActivity that marks it as supporting PiP mode.

<activity android:name="com.google.android.apps.youtube.app.WatchWhileActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" android:launchMode="singleTask" android:resizeableActivity="true" android:supportsPictureInPicture="true" android:theme="@style/Theme.YouTube.Home" android:windowSoftInputMode="adjustResize">

Picture-in-Picture (PiP) was added to Android in the first Nougat developer preview. Many of us would have liked to see it as a feature for phones, tablets, and other future form factors, but it turned out to be an Android TV exclusive. As such, you might be wondering why this is coming up on a teardown of the standard, non-Android TV version of YouTube, and that's why this requires just a little bit more explanation.

Like a few other apps that come in both regular and Android TV variants, it looks like they are sharing some common code, if not actually built from the same code base (using different configurations for each variant). In this instance, a flag that only matters on Android TV happens to have made its way into a regular build. Since the flag doesn't do anything on phones or tablets, it won't make any difference that it's there.

I suspect this is a sign the woefully outdated YouTube for Android TV app (last updated 9 months ago) will probably get an update very soon. A number of features are due to be added along with PiP mode, but given the extended delay since the last update, we might even be in for a refresh of the UI. Of course, that's just speculation, and maybe a little bit of wishful thinking – there are a ton of usability issues I'd love to see fixed.

Download

The APK is signed by Google and upgrades your existing app. The cryptographic signature guarantees that the file is safe to install and was not tampered with in any way. Rather than wait for Google to push this download to your devices, which can take days, download and install it just like any other APK.

Version: 12.03.56