目指せ脱スマホ中毒、YouTubeの利用制限機能を自作する
はじめに
正直に告白すると、私にはスマホでYouTubeを見すぎる悪癖があります。
そこでYouTubeに利用制限を実装したいのですが折角ですから、タスクをこなすと利用可能時間が延びるような仕組みにします。
- スマホでのYouTube視聴に対して利用可能時間が設定されている
- 利用可能時間を超過するとYouTubeが閉じる
- タスクを完了すると規定の時間、利用可能時間を延長できる
動作環境
- デバイス : Xperia 1 Ⅱ
- バージョン : Android 11
vs Degital Wellbeingツール
Degital WellbeingツールはAndroidに標準で搭載されている機能の1つで、スマホの使いすぎを防ぐために役立つ機能を使うことができます。
是非はあるものの、新しいアプリを入れることなく利用制限をかけられるので特別なことをする必要がなければ十分です。
このツールではタスクを完了すると利用可能時間を延長できる
機能を実装できませんので、メインでこのツールは利用しません。
ただし、YouTubeはアプリだけでなくブラウザで視聴できますから、私の場合はこのツールで利用制限を0分に設定することでブラウザではYouTubeを視聴できないようにしています。[1]
機能設計
今回は以下の機能に分けて実装を考えます。
- YouTubeのアプリを開いている最中1分毎に規定の時間が減る
- タスクが完了したときトリガを発火
- トリガが発火されると利用可能時間を増やす
- 利用可能時間が0分になるとアプリが閉じる
今回はこれらを Tasker
を利用し実装しました。
Tasker
Taskerは以下のように紹介される、Androidの自動実行をサポートするアプリです。
スマートフォンやタブレットの色々な機能を条件に応じて自動で実行してくれるAndroid用アプリ‘Tasker’ をご存知でしょうか。
今回はこれを利用して1と3の機能を実装します。
実装
1. YouTubeのアプリを開いている最中1分毎に規定の時間を減らす処理
この機能はTaskerを利用して実装しました。
変数の作成
まず以下2つの変数を作成します。
- Youtubeの起動ステータスを管理(開いている:1、閉じている:0)する変数:isYoutubeOpen
- Youtubeの利用可能時間を格納:LimitTimeMin
変数の作成手順は以下の通りです。
-
VARS
タブを開いて右下の+
ボタンをクリック -
%
に続けて変数名を入力する欄が出てくるので登録したい変数名を入力して☑️マーク
Taksの作成
続いてTASKS
を作成します。
TASKERでは実際に動作するTASK
と動作のトリガーとなるPROFILE
を別々に作成します。
YouTubeの起動ステータスを管理するTASK
まず1で作成した起動ステータスを管理するTASKを実装します。
変数への値のセットは Varivale Set
から行うことができますので以下のように開いた時に 1
、閉じたときに 0
となるようにそれぞれ設定します。
-
Name
に%isYoutubeOpen
を入力 -
To
に1
、0
をそれぞれ設定
制限時間を減らすTASK
次にLimitTimeMin
を参照し1分経過ごとに値を1減らす、値が0ならYoutubeを閉じるような動作を設定していきます。
※色々やり方はあるので一例としてどうぞ。
以下いくつかTipsです。
-
Go Home
をPage 0
に設定して実行すると開いているアプリを閉じてホーム画面に戻ります -
Variable Subtract
を利用すると設定した変数を、設定数減らします -
Goto
で指定の条件の時にTASK内の指定のアクションに再帰させます
PROFILESの作成
では先ほど作成したTASKを条件に合わせて実行するように設定しましょう。
Taskerでは PROFILES
に指定の条件とその時に動作するTASKを紐づけることで設定します。
Youtubeのアプリを起動したときステータスを変更するTASKを設定する
-
PROFILES
タブを開きます -
右下の
+
ボタンをタップ -
Application
をタップするとインストールしたアプリ一覧が出てくるので設定したいアプリ(ここではYouTube)を選択します
※複数選択可能です -
選択後、左上の
←
ボタンをタップすると1つ戻りTASK一覧が立ち上がるので紐づけたいものを選択します※ここではYouTubeの管理ステータスをオープン状態である
1
のステータスにするTASKを選択します
Youtubeを閉じたときにステータスを変更するTASKを設定する
上記で設定したPROFILEをタップすると設定した内容を確認できます。
さらにイベントとTASKいずれかを長押しすることでそれぞれに対応した追加設定が可能です。
- 先ほど作成したPROFILEを開きTASKを長押し
- 追加の設定がポップアップするので
Add Exit Task
をタップ - TASK一覧が立ち上がるのでYouTubeを閉じたときのステータスに変更するTASKを選択します
これでYouTubeを閉じたときのTASKを追加できました。
以下のようにYouTubeに対して2つのTASKが紐づいていれば作業完了です。
YouTubeが閉じたときに制限時間の減算を開始する
同じ要領で今度は制限時間を減らすTASKを紐づけましょう。
変数を条件にするときは、 State
から Variables
を選択することで特定の変数の値を条件にTASKを実行できます。
-
+
ボタンからPROFILEを新規作成 -
State
を選択 -
Variables
を選択し、次の画面でVariable Value
を選択 - 左の空欄に設定する変数を、右側に条件となる変数の値を入力します
ここでは左側に%isYoutubeOpen
、右側に1
を入力します
以上でYouTubeが開いたときにステータスを 1
に変更し制限時間の減算を開始、閉じると 0
に戻るように設定しました。
TASKの方でステータスが 0
の時は減算が止まるように設定しているので減算も止まります。
2. 制限時間を増やす処理
続いて制限時間を増やす処理の実装します。
利用可能時間を管理する変数を一定数増やすTASKを作成し、適当な条件でそれを実行するのが基本的な方針になります。
そこでまずは変数を一定数増やすTASKを作成します。
変数の値を増やすTASKを作成する
- 上述の
TASKの作成
を参考にTASKの新規作成を開始 - 設定する
Action
にVariables
からVariable Add
を選択 - 利用可能時間を管理している変数と増やしたい時間(分)を入力します
PROFILEの作成
次に PROFILE
を作成し特定の条件でTASKを実行 = 利用可能時間を増やす訳ですがこれは各自適当な方法を選択していただければ結構です。
例えば、単語帳など勉強系のアプリを立ち上げることで利用可能時間を増やすのも一案です。
個人的なオススメはAPIから時間を増やせるようにすることです。
こうしておけばPCから利用時間を増やすことができるのでPCでタスク管理をしている場合でも時間を増やすことができます。
ちなみに私の場合は、タスク管理のアプリが、タスクを完了したときの報酬として指定のAPIをたたくことができるようになっているので、タスクを完了するたびに利用可能時間が伸びるようになっています。
APIからTASKを実行する方法は良ければ以下の記事を参考にしてみてください。
最後に
以上の手順でYouTubeを時間管理する機能を作成できました。
YouTubeを見すぎてしまうのは良くないと思っていてもついつい見てしまうものなので、自分の意思に頼らず機械的に管理する方法を採るのも賢いやり方です。
ぜひこの記事を参考にみなさんの環境にあったやり方を見つけていただければ幸いです。
-
URL別に制限をかけることができるのでYouTube以外は普段通りブラウザで閲覧可能です。 ↩︎
Discussion