【お知らせ】ニコニコ公式「ランキング過去ログファイル」提供終了に伴う週刊ニコニコ歌ってみたランキングの投稿曜日変更と総合ランキングの集計対象の変更について

ニコニコ動画関連各種考察お知らせ・告知
この記事は約4分で読めます。
本サイトには広告が表示されています。広告を見たくない方はAdブロックフィルタをご利用下さい。

いつも週刊ニコニコ歌ってみたランキングをご覧いただきましてありがとうございます。
さて、ニコニコのサイバー攻撃からの再開にあたって、ランキング周りのサービス終了などが生じたことから投稿曜日および総合ランキングの集計対象に関して、変更を行います。併せて、このような決定に至った経緯などについてご報告させていただきます。

投稿曜日

旧)毎週月曜日22時目途
新)毎週火曜日22時目途

総合ランキングの集計対象

旧)公式ランキング過去ログファイルおよびランキングRSSに掲載された集計時点で歌ってみたタグの付いている動画
新)ニコニコ公式スナップショットAPIがデータを取得した時点で歌ってみたタグのついている動画

※なお、新着に関しては変更はないものの総合ランキングの集計対象が変わることにより、文言が以下のように若干修正されます。
旧)集計時点で歌ってみたタグがあり、総合30位に入っていない集計期間内に投稿された動画
新)総合ランキング確定順位中、総合30位に入っていない集計期間内に投稿された動画

本決定に至る経緯

過日発生しましたニコニコへのサイバー攻撃により、以下の告知が掲出されました。
ニコニコ動画サービス再開後のランキングアーカイブス及びランキング過去ログファイルの提供終了について【ニコニコ動画】

週刊ニコニコ歌ってみたランキングでは、ランキング過去ログファイルを用いて、全体の週間順位を確定させており、今回の提供に伴って、週間総合ランキングを別の形態で取得する対応が必要となりました。
上記記事中では別途提供されているRSSの利用を提案していますが、週次単位のRSSデータは「音楽・サウンド」ジャンルという投稿数が膨大な塊での順位しか提供されておらず、その中に歌ってみたが含まれている数はあまり多くないのが現状です。「音楽・サウンド」ジャンルに所属する動画の数ががあまりにも多すぎてランキングが機能していないという問題は以前週刊ニコニコインフォへ出演した際にも問題として提起した話ですが、そこから未だに対応がなされていないこともあり、週刊ニコニコ歌ってみたランキングではメインの順位決定用データとして利用することができません。

次善の策として、運営公式にて提供されている「スナップショットAPI」データを用いて、全数差分を取得する方法がありますが、歌ってみたタグおよび歌ってみた周辺の関連タグが付与されている動画は8月6日現在で約124万7千もの数があることから、ニコニコランキングメーカーを利用してデータを取得した後にテキストデータとして生成するだけでもほぼ丸一日かかります。そこから全数の差分を取得する計算をさせる場合、実測値で半日以上を必要とします。このことからランキング動画の作成に入れるのはどんなに頑張っても水曜日になってしまうことが確実な情勢となりました。加えて、ランキング過去ログファイルのデータを利用して土日に仕込み作業を行い、作業時間の減少を実施していたのも今後はできなくなることから動画の紹介位置決定を水曜日以降に実施する必要が生じ、場合によっては木曜日や金曜日の投稿となる可能性も生じておりました。

この一連の検討を行う中で、週刊ニコニコ歌ってみたランキングの継続も断念せざるを得ないという状況まで一時期追い込まれていましたことをここで正直に記載しておきます。

継続断念も検討している旨をXやBlueskyなどで吐露したところ、ニコニコのこいづか氏をはじめとする有志の皆様のご協力をいただくことができ、「スナップショットAPI」データの全数差分を極めて短時間で抽出することが可能となりました。データ取得そのものは件数が100万件を超えていることもあり、これ以上の短縮はできないのですが、差分が短時間ができることで、事前の仕込み作業もある程度のリカバリができます。このことから移行直後に関しては少し遅れる可能性はあるものの数週間のうちには毎週火曜日22時投稿が可能になると判断、今回の告知となりました。

改めてご協力をいただきました皆様に感謝を申し上げます。

最後に

我々は、ニコニコで遊ばせてもらっているという立ち位置ですから基本的に運営サイドの決定は絶対であって、ユーザサイドとしては従わざるを得ないという前提ではあります。さらに今回はサイバー攻撃による想定外の事態からのサービス終了だったことは十分理解いたします。しかしながらそれらを加味したとしても今回のランキング過去ログデータの提供中止は寝耳に水の出来事であり、ランキング動画というニコニコ特有の動画ジャンルが終焉しかねない事態です。そもそもランキング過去ログデータは、2019年6月26日のランキングリニューアルに際して、様々な検討が行われた頃、RSSデータでは賄えないデータ分析の用途があるということで、議論を経て導入されたものです。その上でデータの提供ができなくなるということであれば、せめて現在は提供されていない週次月次のタグランキングRSS提供くらいはあってしかるべきではなかったかと思います。これを機にランキング動画の作成をやめる方も出てくるでしょうし、私も一時はそこまで追い込まれていました。この決定が安易になされたとは考えてはいませんが、現実的な代替策の導入はあってしかるべきではなかったかとこちらには記載しておきます。

#週刊歌らん #歌ってみた #ニコニコ #ランキング動画 #歌ってみたランキング #週刊ニコニコ歌ってみたランキング

',b.captions&&s){var u=J("figcaption");u.id="baguetteBox-figcaption-"+t,u.innerHTML=s,l.appendChild(u)}e.appendChild(l);var c=J("img");c.onload=function(){var e=document.querySelector("#baguette-img-"+t+" .baguetteBox-spinner");l.removeChild(e),!b.async&&n&&n()},c.setAttribute("src",r),c.alt=a&&a.alt||"",b.titleTag&&s&&(c.title=s),l.appendChild(c),b.async&&n&&n()}}function X(){return M(o+1)}function D(){return M(o-1)}function M(e,t){return!n&&0<=e&&e=k.length?(b.animation&&O("right"),!1):(q(o=e,function(){z(o),V(o)}),R(),b.onChange&&b.onChange(o,k.length),!0)}function O(e){l.className="bounce-from-"+e,setTimeout(function(){l.className=""},400)}function R(){var e=100*-o+"%";"fadeIn"===b.animation?(l.style.opacity=0,setTimeout(function(){m.transforms?l.style.transform=l.style.webkitTransform="translate3d("+e+",0,0)":l.style.left=e,l.style.opacity=1},400)):m.transforms?l.style.transform=l.style.webkitTransform="translate3d("+e+",0,0)":l.style.left=e}function z(e){e-o>=b.preload||q(e+1,function(){z(e+1)})}function V(e){o-e>=b.preload||q(e-1,function(){V(e-1)})}function U(e,t,n,o){e.addEventListener?e.addEventListener(t,n,o):e.attachEvent("on"+t,function(e){(e=e||window.event).target=e.target||e.srcElement,n(e)})}function W(e,t,n,o){e.removeEventListener?e.removeEventListener(t,n,o):e.detachEvent("on"+t,n)}function G(e){return document.getElementById(e)}function J(e){return document.createElement(e)}return[].forEach||(Array.prototype.forEach=function(e,t){for(var n=0;n","http://www.w3.org/2000/svg"===(e.firstChild&&e.firstChild.namespaceURI)}(),m.passiveEvents=function i(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("test",null,t)}catch(n){}return e}(),function a(){if(r=G("baguetteBox-overlay"))return l=G("baguetteBox-slider"),u=G("previous-button"),c=G("next-button"),void(d=G("close-button"));(r=J("div")).setAttribute("role","dialog"),r.id="baguetteBox-overlay",document.getElementsByTagName("body")[0].appendChild(r),(l=J("div")).id="baguetteBox-slider",r.appendChild(l),(u=J("button")).setAttribute("type","button"),u.id="previous-button",u.setAttribute("aria-label","Previous"),u.innerHTML=m.svg?f:"<",r.appendChild(u),(c=J("button")).setAttribute("type","button"),c.id="next-button",c.setAttribute("aria-label","Next"),c.innerHTML=m.svg?g:">",r.appendChild(c),(d=J("button")).setAttribute("type","button"),d.id="close-button",d.setAttribute("aria-label","Close"),d.innerHTML=m.svg?p:"×",r.appendChild(d),u.className=c.className=d.className="baguetteBox-button",function n(){var e=m.passiveEvents?{passive:!1}:null,t=m.passiveEvents?{passive:!0}:null;U(r,"click",x),U(u,"click",E),U(c,"click",C),U(d,"click",B),U(l,"contextmenu",A),U(r,"touchstart",T,t),U(r,"touchmove",N,e),U(r,"touchend",L),U(document,"focus",P,!0)}()}(),S(e),function s(e,a){var t=document.querySelectorAll(e),n={galleries:[],nodeList:t};return w[e]=n,[].forEach.call(t,function(e){a&&a.filter&&(y=a.filter);var t=[];if(t="A"===e.tagName?[e]:e.getElementsByTagName("a"),0!==(t=[].filter.call(t,function(e){if(-1===e.className.indexOf(a&&a.ignoreClass))return y.test(e.href)})).length){var i=[];[].forEach.call(t,function(e,t){var n=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1,H(i,a),I(t)},o={eventHandler:n,imageElement:e};U(e,"click",n),i.push(o)}),n.galleries.push(i)}}),n.galleries}(e,t)},show:M,showNext:X,showPrevious:D,hide:j,destroy:function e(){!function n(){var e=m.passiveEvents?{passive:!1}:null,t=m.passiveEvents?{passive:!0}:null;W(r,"click",x),W(u,"click",E),W(c,"click",C),W(d,"click",B),W(l,"contextmenu",A),W(r,"touchstart",T,t),W(r,"touchmove",N,e),W(r,"touchend",L),W(document,"focus",P,!0)}(),function t(){for(var e in w)w.hasOwnProperty(e)&&S(e)}(),W(document,"keydown",F),document.getElementsByTagName("body")[0].removeChild(document.getElementById("baguetteBox-overlay")),w={},h=[],o=0}}})
タイトルとURLをコピーしました