🤖

目指せ脱スマホ中毒、YouTubeの利用制限機能を自作する

2023/02/05に公開

はじめに

正直に告白すると、私にはスマホで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’ をご存知でしょうか。

https://tasker-userguide.pralin.info/

今回はこれを利用して1と3の機能を実装します。

実装

1. YouTubeのアプリを開いている最中1分毎に規定の時間を減らす処理

この機能はTaskerを利用して実装しました。

変数の作成

まず以下2つの変数を作成します。

  • Youtubeの起動ステータスを管理(開いている:1、閉じている:0)する変数:isYoutubeOpen
  • Youtubeの利用可能時間を格納:LimitTimeMin

変数の作成手順は以下の通りです。

  1. VARSタブを開いて右下の+ボタンをクリック
  2. %に続けて変数名を入力する欄が出てくるので登録したい変数名を入力して☑️マーク

Taksの作成

続いてTASKSを作成します。
TASKERでは実際に動作するTASKと動作のトリガーとなるPROFILEを別々に作成します。

YouTubeの起動ステータスを管理するTASK

まず1で作成した起動ステータスを管理するTASKを実装します。
変数への値のセットは Varivale Setから行うことができますので以下のように開いた時に 1、閉じたときに 0となるようにそれぞれ設定します。

  1. Name%isYoutubeOpenを入力
  2. To10をそれぞれ設定

制限時間を減らすTASK

次にLimitTimeMinを参照し1分経過ごとに値を1減らす、値が0ならYoutubeを閉じるような動作を設定していきます。
※色々やり方はあるので一例としてどうぞ。

以下いくつかTipsです。

  • Go HomePage 0に設定して実行すると開いているアプリを閉じてホーム画面に戻ります
  • Variable Subtractを利用すると設定した変数を、設定数減らします
  • Gotoで指定の条件の時にTASK内の指定のアクションに再帰させます

PROFILESの作成

では先ほど作成したTASKを条件に合わせて実行するように設定しましょう。
Taskerでは PROFILESに指定の条件とその時に動作するTASKを紐づけることで設定します。

Youtubeのアプリを起動したときステータスを変更するTASKを設定する

  1. PROFILESタブを開きます

  2. 右下の +ボタンをタップ

  3. Applicationをタップするとインストールしたアプリ一覧が出てくるので設定したいアプリ(ここではYouTube)を選択します
    ※複数選択可能です

  4. 選択後、左上の ボタンをタップすると1つ戻りTASK一覧が立ち上がるので紐づけたいものを選択します

    ※ここではYouTubeの管理ステータスをオープン状態である 1のステータスにするTASKを選択します

Youtubeを閉じたときにステータスを変更するTASKを設定する

上記で設定したPROFILEをタップすると設定した内容を確認できます。
さらにイベントとTASKいずれかを長押しすることでそれぞれに対応した追加設定が可能です。

  1. 先ほど作成したPROFILEを開きTASKを長押し
  2. 追加の設定がポップアップするので Add Exit Taskをタップ
  3. TASK一覧が立ち上がるのでYouTubeを閉じたときのステータスに変更するTASKを選択します

これでYouTubeを閉じたときのTASKを追加できました。
以下のようにYouTubeに対して2つのTASKが紐づいていれば作業完了です。

YouTubeが閉じたときに制限時間の減算を開始する

同じ要領で今度は制限時間を減らすTASKを紐づけましょう。
変数を条件にするときは、 Stateから Variablesを選択することで特定の変数の値を条件にTASKを実行できます。

  1. +ボタンからPROFILEを新規作成
  2. Stateを選択
  3. Variablesを選択し、次の画面で Variable Valueを選択
  4. 左の空欄に設定する変数を、右側に条件となる変数の値を入力します
    ここでは左側に %isYoutubeOpen、右側に 1を入力します

以上でYouTubeが開いたときにステータスを 1に変更し制限時間の減算を開始、閉じると 0に戻るように設定しました。
TASKの方でステータスが 0の時は減算が止まるように設定しているので減算も止まります。

2. 制限時間を増やす処理

続いて制限時間を増やす処理の実装します。
利用可能時間を管理する変数を一定数増やすTASKを作成し、適当な条件でそれを実行するのが基本的な方針になります。
そこでまずは変数を一定数増やすTASKを作成します。

変数の値を増やすTASKを作成する

  1. 上述の TASKの作成を参考にTASKの新規作成を開始
  2. 設定する ActionVariablesから Variable Addを選択
  3. 利用可能時間を管理している変数と増やしたい時間(分)を入力します

PROFILEの作成

次に PROFILEを作成し特定の条件でTASKを実行 = 利用可能時間を増やす訳ですがこれは各自適当な方法を選択していただければ結構です。
例えば、単語帳など勉強系のアプリを立ち上げることで利用可能時間を増やすのも一案です。

個人的なオススメはAPIから時間を増やせるようにすることです。
こうしておけばPCから利用時間を増やすことができるのでPCでタスク管理をしている場合でも時間を増やすことができます。
ちなみに私の場合は、タスク管理のアプリが、タスクを完了したときの報酬として指定のAPIをたたくことができるようになっているので、タスクを完了するたびに利用可能時間が伸びるようになっています。

APIからTASKを実行する方法は良ければ以下の記事を参考にしてみてください。

https://zenn.dev/melon1891/articles/make_tasker_action_with_api

最後に

以上の手順でYouTubeを時間管理する機能を作成できました。
YouTubeを見すぎてしまうのは良くないと思っていてもついつい見てしまうものなので、自分の意思に頼らず機械的に管理する方法を採るのも賢いやり方です。
ぜひこの記事を参考にみなさんの環境にあったやり方を見つけていただければ幸いです。

脚注
  1. URL別に制限をかけることができるのでYouTube以外は普段通りブラウザで閲覧可能です。 ↩︎

Discussion