youtube-final-logo-getty

YouTube vi farà comandare la riproduzione con la voce

Lorenzo Quiroli

Non sarebbe meglio poter controllare la riproduzione video di YouTube con la voce? Google ci ha pensato e nell’ultimo apk dell’app Android, versione 10.25, ci sono chiari segni di questo tipo di controlli. Saranno anche molto più completi di quanto di ci possa aspettare, permettendoci non solo azioni basilari come pausa, continua, riproduci successivo e così via, ma anche riproduci su Chromecast, salta gli annunci pubblicitari e così via.

Ecco l’elenco di tutte le azioni presenti al momento nell’apk:

  • Search
    • “search for …”
    • Example: “search for hunger games”
  • Close Player
    • “close player”
  • Screen Change
    • “full screen”, “fullscreen”, “go to full screen”, “go to fullscreen”
    • “mini screen”, “miniscreen”, “go to mini screen”, “go to miniscreen”
    • “normal screen”, “normalscreen”, “go to normal screen”, “go to normalscreen”
  • Connect
    • “play on …”, “connect on…”
    • Options: TV, Chromecast, Console
    • Example: “play on TV”, “connect to TV”
  • Disconnect
    • “disconnect from …”
    • Options: TV, Chromecast, Console
    • Example: “disconnect from TV”
  • Pause
    • “pause”
  • Play
    • “play”
    • “resume”
  • Stop
    • “stop”
  • Next
    • “next”
    • “play next”
  • Previous
    • “previous”
    • “play previous”
    • “play last”
  • Skip Ads
    • “skip ads”
  • Play Nth Video
    • “play the … video”
    • Options: ordinals 1-10 (e.g. first, second, third)
    • Example: “play the first video”

LEGGI ANCHE: Una web series basata su Fruit Ninja arriverà su YouTube

Questa lista è da considerarsi provvisoria essendo un “lavori in corso” ma sembra già ottima così com’è, a parte l’assenza di “vai al minuto X” e “abilita i sottotitoli”.

<meta-data android:name=”GoogleNowActions” android:resource=”@xml/google_now_actions“/>
<activity android:configChanges=”keyboardHidden|orientation|screenSize|uiMode” android:launchMode=”singleTask” android:name=”com.google.android.apps.youtube.app.WatchWhileActivity” android:theme=”@style/Theme.YouTube.Home” android:windowSoftInputMode=”adjustResize”>
<meta-data android:name=”android.app.searchable” android:resource=”@xml/searchable”/>
<intent-filter>
<action android:name=”android.intent.action.SEARCH“/>
</intent-filter>
<intent-filter>
<action android:name=”com.google.android.youtube.voice.CLOSE_PLAYER“/>
<category android:name=”android.intent.category.DEFAULT”/>
<category android:name=”android.intent.category.BROWSABLE”/>
</intent-filter>
<intent-filter>
<action android:name=”com.google.android.youtube.voice.SCREEN_CHANGE“/>
<category android:name=”android.intent.category.DEFAULT”/>
<category android:name=”android.intent.category.BROWSABLE”/>
</intent-filter>
<intent-filter>
<action android:name=”com.google.android.youtube.voice.PAUSE“/>
<category android:name=”android.intent.category.DEFAULT”/>
<category android:name=”android.intent.category.BROWSABLE”/>
</intent-filter>
<intent-filter>
<action android:name=”com.google.android.youtube.voice.PLAY“/>
<category android:name=”android.intent.category.DEFAULT”/>
<category android:name=”android.intent.category.BROWSABLE”/>
</intent-filter>
<intent-filter>
<action android:name=”com.google.android.youtube.voice.STOP“/>
<category android:name=”android.intent.category.DEFAULT”/>
<category android:name=”android.intent.category.BROWSABLE”/>
</intent-filter>
<intent-filter>
<action android:name=”com.google.android.youtube.voice.NEXT“/>
<category android:name=”android.intent.category.DEFAULT”/>
<category android:name=”android.intent.category.BROWSABLE”/>
</intent-filter>
<intent-filter>
<action android:name=”com.google.android.youtube.voice.PREVIOUS“/>
<category android:name=”android.intent.category.DEFAULT”/>
<category android:name=”android.intent.category.BROWSABLE”/>
</intent-filter>
<intent-filter>
<action android:name=”com.google.android.youtube.voice.SKIP_ADS“/>
<category android:name=”android.intent.category.DEFAULT”/>
<category android:name=”android.intent.category.BROWSABLE”/>
</intent-filter>
<intent-filter>
<action android:name=”com.google.android.youtube.mdx.voice.CONNECT“/>
<category android:name=”android.intent.category.DEFAULT”/>
<category android:name=”android.intent.category.BROWSABLE”/>
</intent-filter>
<intent-filter>
<action android:name=”com.google.android.youtube.mdx.voice.DISCONNECT“/>
<category android:name=”android.intent.category.DEFAULT”/>
<category android:name=”android.intent.category.BROWSABLE”/>
</intent-filter>
<intent-filter>
<action android:name=”com.google.android.youtube.voice.PLAY_NTH_VIDEO“/>
<category android:name=”android.intent.category.DEFAULT”/>
<category android:name=”android.intent.category.BROWSABLE”/>
</intent-filter>
</activity>

google_now_actions.xml

<GoogleNowActions xsi:schemaLocation=”https://developers.google.com/android/search/actions/1.0 https://developers.google.com/android/search/actions/1.0/example.xsd” xmlns=https://developers.google.com/android/search/actions/1.0 xmlns:xsi=”https://www.w3.org/2001/XMLSchema-instance”>
<PackageName>com.google.android.youtube</PackageName>
<VersionCode>1073741824</VersionCode>
<AppName>YouTube</AppName>
<Action>
<VerbClass>ActivateAction</VerbClass>
<Intent>android.intent.action.SEARCH</Intent>
<Example>search for $SchemaOrg_Text:query</Example>
<DiscoverabilityExample>search for hunger games</DiscoverabilityExample>
<AppInForegroundOnly>true</AppInForegroundOnly>
</Action>
<Action>
<VerbClass>ActivateAction</VerbClass>
<Intent>com.google.android.youtube.voice.CLOSE_PLAYER</Intent>
<Example>close player</Example>
<DiscoverabilityExample>close player</DiscoverabilityExample>
<AppInForegroundOnly>true</AppInForegroundOnly>
</Action>
<Action>
<VerbClass>ActivateAction</VerbClass>
<Intent>com.google.android.youtube.voice.FULL_SCREEN</Intent>
<Example>full screen</Example>
<Example>fullscreen</Example>
<Example>go to full screen</Example>
<Example>go to fullscreen</Example>
<DiscoverabilityExample>fullscreen</DiscoverabilityExample>
<AppInForegroundOnly>true</AppInForegroundOnly>
</Action>
<Action>
<VerbClass>ActivateAction</VerbClass>
<Intent>com.google.android.youtube.voice.MINI_SCREEN</Intent>
<Example>mini screen</Example>
<Example>miniscreen</Example>
<Example>go to mini screen</Example>
<Example>go to miniscreen</Example>
<DiscoverabilityExample>miniscreen</DiscoverabilityExample>
</Action>
<Action>
<VerbClass>ActivateAction</VerbClass>
<Intent>com.google.android.youtube.voice.NORMAL_SCREEN</Intent>
<Example>normal screen</Example>
<Example>normalscreen</Example>
<Example>go to normal screen</Example>
<Example>go to normalscreen</Example>
<DiscoverabilityExample>normalscreen</DiscoverabilityExample>
</Action>
<Action>
<VerbClass>SuspendAction</VerbClass>
<Intent>com.google.android.youtube.voice.PAUSE</Intent>
<Example>pause</Example>
<DiscoverabilityExample>pause</DiscoverabilityExample>
<AppInForegroundOnly>true</AppInForegroundOnly>
</Action>
<Action>
<VerbClass>ResumeAction</VerbClass>
<Intent>com.google.android.youtube.voice.PLAY</Intent>
<Example>play</Example>
<Example />
<DiscoverabilityExample>play</DiscoverabilityExample>
<AppInForegroundOnly>true</AppInForegroundOnly>
</Action>
<Action>
<VerbClass>ResumeAction</VerbClass>
<Intent>com.google.android.youtube.voice.PLAY</Intent>
<Example>continue</Example>
<DiscoverabilityExample>continue</DiscoverabilityExample>
<AppInForegroundOnly>true</AppInForegroundOnly>
</Action>
<Action>
<VerbClass>DeactivateAction</VerbClass>
<Intent>com.google.android.youtube.voice.STOP</Intent>
<Example>stop</Example>
<DiscoverabilityExample>stop</DiscoverabilityExample>
<AppInForegroundOnly>true</AppInForegroundOnly>
</Action>
<Action>
<VerbClass>ActivateAction</VerbClass>
<Intent>com.google.android.youtube.voice.NEXT</Intent>
<Example>next</Example>
<DiscoverabilityExample>next</DiscoverabilityExample>
<AppInForegroundOnly>true</AppInForegroundOnly>
</Action>
<Action>
<VerbClass>ActivateAction</VerbClass>
<Intent>com.google.android.youtube.voice.NEXT</Intent>
<Example>play next</Example>
<DiscoverabilityExample>next</DiscoverabilityExample>
<AppInForegroundOnly>true</AppInForegroundOnly>
</Action>
<Action>
<VerbClass>ActivateAction</VerbClass>
<Intent>com.google.android.youtube.voice.PREVIOUS</Intent>
<Example>previous</Example>
<DiscoverabilityExample>previous</DiscoverabilityExample>
<AppInForegroundOnly>true</AppInForegroundOnly>
</Action>
<Action>
<VerbClass>ActivateAction</VerbClass>
<Intent>com.google.android.youtube.voice.PREVIOUS</Intent>
<Example>play previous</Example>
<DiscoverabilityExample>play previous</DiscoverabilityExample>
<AppInForegroundOnly>true</AppInForegroundOnly>
</Action>
<Action>
<VerbClass>ActivateAction</VerbClass>
<Intent>com.google.android.youtube.voice.PREVIOUS</Intent>
<Example>play last</Example>
<DiscoverabilityExample>play last</DiscoverabilityExample>
<AppInForegroundOnly>true</AppInForegroundOnly>
</Action>
<Action>
<VerbClass>ActivateAction</VerbClass>
<Intent>com.google.android.youtube.voice.SKIP_ADS</Intent>
<Example>skip ads</Example>
<DiscoverabilityExample>skip ads</DiscoverabilityExample>
<AppInForegroundOnly>true</AppInForegroundOnly>
</Action>
<Action>
<VerbClass>ActivateAction</VerbClass>
<Intent>com.google.android.youtube.mdx.voice.CONNECT</Intent>
<Example>play on $FirstScreen:first_screen</Example>
<DiscoverabilityExample>play on TV</DiscoverabilityExample>
<AppInForegroundOnly>true</AppInForegroundOnly>
</Action>
<DeveloperProvidedType>
<Name>$FirstScreen</Name>
<Value>TV</Value>
<Value>Chromecast</Value>
<Value>Console</Value>
</DeveloperProvidedType>
<Action>
<VerbClass>ActivateAction</VerbClass>
<Intent>com.google.android.youtube.mdx.voice.CONNECT</Intent>
<Example>connect to $FirstScreen:first_screen</Example>
<DiscoverabilityExample>connect to TV</DiscoverabilityExample>
<AppInForegroundOnly>true</AppInForegroundOnly>
</Action>
<Action>
<VerbClass>DeactivateAction</VerbClass>
<Intent>com.google.android.youtube.mdx.voice.DISCONNECT</Intent>
<Example>disconnect from $FirstScreen:first_screen</Example>
<DiscoverabilityExample>disconnect from TV</DiscoverabilityExample>
<AppInForegroundOnly>true</AppInForegroundOnly>
</Action>
<Action>
<VerbClass>ActivateAction</VerbClass>
<Intent>com.google.android.youtube.voice.PLAY_NTH_VIDEO</Intent>
<Example>play the $NumberTh:index video</Example>
<DiscoverabilityExample>play the first video</DiscoverabilityExample>
</Action>
<DeveloperProvidedType>
<Name>$NumberTh</Name>
<Value>first</Value>
<Value>second</Value>
<Value>third</Value>
<Value>forth</Value>
<Value>fifth</Value>
<Value>sixth</Value>
<Value>seventh</Value>
<Value>eighth</Value>
<Value>ninth</Value>
<Value>tenth</Value>
</DeveloperProvidedType>
</GoogleNowActions

I comandi vocali non sono però l’unica possibile futura novità contenuta nell’apk. Passiamo ora ai video accelerati che dovrebbero essere una variante dei live stream in cui è assente il buffering: il principio è che la diretta temporale sia più importante di perdere qualche frame ed è un meccanismo che potrebbe venire applicato anche al futuro YouTube Gaming.

Passiamo poi a delle notifiche più affidabili per segnalarci la pubblicazione di video dei canali a quali ci siamo iscritti: da sempre è uno dei punti deboli di YouTube e una stringa promette qualche cambiamento, ma non vorremmo che in questo caso i colleghi di AndroidPolice siano stati un po’ troppo ottimisti.

<string name=”channels_notification_tutorial_description”>Never miss an update! Tap the bell to get every notification for this channel.</string>

Infine si torna a parlare di una sottoscrizione per vedere YouTube senza pubblicità a causa dell’integrazione di Wallet all’interno di YouTube:

<activity android:configChanges=”keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode” android:name=”com.google.android.gms.ads.AdActivity” android:theme=”@android:style/Theme.Translucent”/>
<activity android:name=”com.google.android.gms.ads.purchase.InAppPurchaseActivity” android:theme=”@style/Theme.IAPTheme”/>
<receiver android:exported=”false” android:name=”com.google.android.gms.wallet.EnableWalletOptimizationReceiver“>
<intent-filter>
<action android:name=”com.google.android.gms.wallet.ENABLE_WALLET_OPTIMIZATION“/>
</intent-filter>
</receiver>

Ci sono quindi tante novità nel futuro della piattaforma video di Google e nella speranza che si concretizzino al più presto noi vi lasciamo con il link per il download da APKmirror di questa versione 10.25.

Fonte: AndroidPolice
apk teardown