動機
日頃から、ネットアクセス時間の密度はどうなっているのか興味があった。ま、調ればいくらでも出てくるとは思うのだが。ある日、国内で絶大な人気を誇るアーティストがYouTubeで楽曲を公開するというのを知って、これを使って、閲覧数のカウントの変化、ひいては人のネットへのアクセス時間のパターンを推測しようと思いついた。
Matlab コード
正直、コードと言えるほど高尚なものではないのですが、記します。
まず、YouTube 動画から views の数をとってくるのがこれ。
function num=YTview(url)
tmp = webread(url);
startvalue1=strfind(tmp,'"videoViewCountRenderer":{"viewCount":{"simpleText":"');
startvalue2=strfind(tmp,'回');
num=tmp(startvalue1+53:startvalue2-2);
end
それから、views数をとってくる時間を決めるメインのがこれ。
t = timer('TimerFcn', 'stat=false; disp(''Timer!'')',...
'StartDelay',60); % 1分間隔の場合
for i = 1:2880 % サンプリング回数
start(t)
while(stat==true)
disp('.')
pause(10)
end
stop(t)
num{i}=YTview('U R Lを指定')
date{i}=datetime
end
どうも、開始から時間が経つと(あるいは時間あたりのViewsが減ってくると)、YTの方のViewsの更新が変わってくるみたいで、実際使った数字とは少し変わってます。
あとは加工のみ。そのほか、今回、新しかったのは、
erase(num{I},'回') % 文字列からある文字を消去
% と
[yy(i) mm(i) dd(i) hh(i) mm(i) ss(i)]=datevec(Time{i}); %日付時間をベクトルに変更
でした。
グラフ
横の時間は公開されてからの時間。左図はViews数をプロット(青)と、それの時間差分(1分あたり)を計算したプロット(赤)。最初の45分とその後とを分けてプロットしたのが、中図と右図。
不覚にもコンピュータをスリープさせてしまってデータが取れなかったところ、回線がうまく繋がらなくてエラーになってしまい、データが取れなかったところあり。
考察
- 人気アーティストの公開楽曲の閲覧数から人のネットアクセス時間のパターンを推測してみた
- 夜中の3時頃から朝の9時頃は、あまりネットアクセスしない。
- 夕方、6時頃から9時頃のアクセスが集中。
- 午前中の10時頃にアクセスが上がる。
- 昼休憩ピークというのはわからなかった。
- 最初の45分を細かく見ると、どうやら楽曲は3回ほど連続して見る人がある割合でいるようだ。
- YouTube は公開から最初の数分間、アクセスが集中する時には秒単位で数を更新しているよう。
- アクセスが落ち着いてからは1分あるいは5分に一度ほどの更新に切り替わる。あるいは、もっと細かな調整をしているか。
- 何故か、一箇所に時間経過でViews数が減ることがあった。理由は不明。
おしまいに
楽曲、聞いてみました。人気あるのがよくわかりました。ありがとう、KG。
機会があれば、コンピュータのスリープ解除を忘れずに、もう一度試してみたい。