新フィルターフォーマット

このページでは、ニコニコランキングメーカーの新フィルターのフォーマットについて説明します。

新フィルターを使用する場合は、フィルターファイルの1行目を

version=2
にしてください。

また、新フィルターのフィルターファイルの文字コードは「UTF-8」になります。

1. 基本文法

新フィルターでは、基本のフィルター条件を and や or で接続して全体のフィルターを作ります。

  • 例1) 指定した動画IDを除外する
    // 動画IDが sm9 または sm1234 である動画を対象外とする
    -(id:sm9 or id:sm1234)
  • 例2) 指定したキーワードを含まないタイトルの動画を除外する
    // 「歌ってみた」または「演奏してみた」をタイトルに含む動画を対象とする
    title:歌ってみた or title:演奏してみた
  • 例3) 指定したキーワードを含むタイトルの動画を除外、さらに指定したタグを含まない動画を除外する
    // 「ランキング」をタイトルに含む動画を対象外
    // 「歌ってみた」または「演奏してみた」タグを含まない動画を対象外
    -title:ランキング
    and
    (tag:歌ってみた or tag:演奏してみた)

2. フィルター条件

フィルター条件は、動画のどの要素に適用するかを指定するフィルタータイプと、実際の条件を指定するフィルターパターンをコロン「:」でつなげたものです。

フィルタータイプ:フィルターパターン

2.1 フィルタータイプ

使用できるフィルタータイプには以下のものがあります。

フィルターパターン一覧
フィルタータイプ 説明
id 動画のID/全体一致、大文字小文字区別有り
title 動画のタイトル/部分一致、大文字小文字区別無し
description 動画の説明文/部分一致、大文字小文字区別無し
submit 動画の投稿日時
view 動画の再生数
comment 動画のコメント数
mylist 動画のマイリスト数
pname 動画のタグから推定されたP名/全体一致、大文字小文字区別無し
length 動画の長さ
tag 動画に設定されたタグ/全体一致、大文字小文字区別無し
ltag 動画に設定されたロックされたタグ/全体一致、大文字小文字区別無し
utag 動画に設定されたロックされていないタグ/全体一致、大文字小文字区別無し
idlist パターンリストを参照
titlelist
descriptionlist
submitlist
viewlist
commentlist
mylistlist
pnamelist
lengthlist
taglist
ltaglist
utaglist

2.2 フィルターパターン

フィルターパターンには「文字列パターン」、「数値範囲パターン」、「日時範囲パターン」、「長さ範囲パターン」の4種類があります。

フィルターパターン内で半角スペース「 」と括弧「(」「)」を使用する場合、フィルターパターンをダブルクオーテーション「"」で囲む必要があります。 (ただし、submitパターンリストは例外です)

ダブルクオーテーションで囲んだフィルターパターン内でダブルクオーテーションを使用する場合は、バックスラッシュ「\」でエスケープしてください(title:"abc \"xyz\" 123")。

2.2.1 文字列パターン

フィルターパターンと動画の情報を単純に文字列比較します。 文字列パターンを使用するフィルタータイプは、id、title、description、pname、tag、ltag、utagです。

文字列比較の方法には「全体一致・部分一致」、「大文字小文字の区別の有無」があり、フィルタータイプにより既定値が設定されています。 それぞれの既定値についてはフィルターパターン一覧を参照してください。

文字列比較オプション

文字列比較オプションを使用することで、比較方法を既定値から変更することができます。 また、文字列比較に正規表現を使用する場合も、オプションで指定します。

オプションは、フィルタータイプの後、アットマーク「@」に続けて指定します。 オプション指定方法の一覧を以下の表に示します。

文字列比較オプション一覧
指定方法 比較方法
フィルタータイプ@:フィルターパターン 部分一致/大文字小文字区別有り
フィルタータイプ@i:フィルターパターン 部分一致/大文字小文字区別無し
フィルタータイプ@a:フィルターパターン 全体一致/大文字小文字区別有り
フィルタータイプ@ia:フィルターパターン 全体一致/大文字小文字区別無し
フィルタータイプ@r:フィルターパターン 正規表現比較(※)

※ 正規表現比較と他のオプションは同時に指定することはできません。 使用できる正規表現は「.NET Framework の正規表現」に従います。

  • 例) タイトルが「test動画」である動画を対象にする(「Test動画」や「test動画1」などは除外されるようになる)
    title@a:test動画

2.2.2 数値範囲パターン

フィルタータイプの動画の数値が、フィルターパターンの範囲内であるかどうかを比較します。 数値範囲パターンを使用するフィルタータイプは、view、comment、mylistです。

数値範囲パターンは、上限値と下限値を以下のようにカンマ「,」で区切って指定します(再生数1000以上2000以下を表す例)。

view:1000,2000

上限値、下限値のいずれかは省略可能です。省略された場合は、それぞれ上限無し、下限無しとなります。

comment:1000,
comment:,1000

2.2.3 日時範囲パターン

動画の投稿日時がフィルターパターンの日時の範囲内であるかどうかを比較します。 日時範囲パターンを使用するフィルタータイプは、submitです。

日時範囲パターンは、日時の上限と下限を、数値範囲パターンと同様に指定します。 日時を表すために使用できる書式は「yyyy/MM/dd HH:mm:ss」、「yyyy-MM-ddTHH:mm:ss」のいずれかです。

submit:2009/01/01 12:34:56,2009/01/10 00:00:00
submit:2009-01-01T12:34:56,2009-01-10T00:00:00

※ 上記の1番目の例には半角スペースが含まれていますが、submitで「yyyy/MM/dd HH:mm:ss」の書式を使用する場合のみ、ダブルクオーテーションで囲む必要はありません。

数値範囲パターンと同様に、上限または下限を省略することがきます。

submit:2009/01/01 12:34:56,
submit:,2009/01/10 00:00:00
submit:2009-01-01T12:34:56,
submit:,2009-01-10T00:00:00

2.2.4 長さ範囲パターン

動画の長さがフィルターパターンの長さの範囲内であるかどうかを比較します。 長さ比較パターンを使用するフィルタータイプは、lengthです。

長さ範囲パターンは、長さの上限と下限を、数値範囲パターンと同様に指定します。 長さを表すために使用する書式は「mm:ss」です。

length:10:00,20:00

数値範囲パターンと同様に、上限または下限を省略することができます。

length:10:00,
length:,20:00

3. フィルター演算子

3.4.1 and

and でフィルター条件を結合することで、フィルター条件の論理積を作成することができます。

タイトルに「abc」を含み、タグに「xyz」を持つ動画

title:abc and tag:xyz

3.4.2 or

or でフィルター条件を結合することで、フィルター条件の論理和を作成することができます。

「abc」、「xyz」いずれかのタグを持つ動画

tag:abc or tag:xyz

3.4.3 not

フィルター条件の前にハイフン「-」をつけることで、否定のフィルター条件を作成することができます。

タイトルに「abc」を含まない動画

-title:abc

3.4.4 優先順位

演算子の優先順位は高い順にnot(-)、and、orとなっています。

括弧を使用することで、優先順位を変更することができます。

長さが10分以上20分以下で、かつタグに「bbb」も「ccc」も含まない動画

length:10:00,20:00 and -(tag:bbb or tag:ccc)

4 パターンリスト

xxxlistの形式のパターンタイプを使用することで、一行に1つのフィルターパターンを記述し、それら全てのandまたはorを表わすフィルターを作成することができます。

パターンリストは「xxxlist:{」または「xxxlist:(」で始まり、「}」または「)」のみの行が現われた時に終了します。 「{}」を用いた場合は、リスト内に列挙されているパターンのorを、「()」を用いた場合は、andを表わします。

列挙されたIDの動画を除外

-idlist:{
sm1
sm2
sm3
}

列挙されたタグを全て含む動画を対象とする

taglist:(
aaa
bbb
ccc
)

パターンリストにも文字列比較オプションを使用することができます。

5 改行、コメント

フィルターファイル内の改行は、通常の半角スペースと同様に扱われます。

フィルターファイル内で、「//」または「#」で始まる行があった場合、コメントとみなし、その行全体を無視します。