TINAMI API

はじめに

TINAMI APIは、ソフトウェアの開発者がTINAMIの各種データにアクセスできるようにするためのサービスです。

TINAMI API活用事例

携帯ブラウザ用TINAMIビューワー「Tinamini」
http://www.tinamini.com/(携帯ブラウザ専用)

Mashup Awards

TINAMIは、日本最大のWEBアプリ開発コンテスト「Mashup Awards」へAPIを提供しています。

Mashup Award 公式サイト
TINAMI APIについて


徳島県オープンデータ アニメ×オープンデータ アイディアソン・ハッカソン

TINAMIは、2014/9/27〜28にかけて徳島大学蔵本キャンパスで行われる「アニメ×オープンデータ アイディアソン・ハッカソン」に、協賛企業として参加します。

アイディアソン・ハッカソン概要
徳島県オープンデータ

皆さまによるTINAMI APIのご活用に期待しております!

APIキーの取得について

アプリケーションの開発にはAPIキーが必要になります。アプリケーションごとにAPIキーを取得してください。
APIキー申請フォームへ

注意点

リクエストは、http://api.tinami.com/に対して行います。
例えば認証を行う場合、http://api.tinami.com/authにアクセスして下さい。

ユーザー認証などをSSL経由で行いたい場合は、代わりに https://www.tinami.com/api/ に対してリクエストを行って下さい。
SSLでのユーザー認証のリクエスト先は、https://www.tinami.com/api/authとなります(https://api.tinami.com/ ではないので注意して下さい)。

APIで作品の情報を取得する時には、作品に設定された「公開レベル」にご注意ください。公開レベルは以下の3つです。

  1. 誰でも見れる(public)

    ユーザー認証がなくても情報が取得できる作品です。
  2. ユーザー登録している人なら誰でも見れる(user)

    TINAMIの作品検索で「登録ユーザー限定」と表示される作品が該当します。 この作品の情報を取得する時は、ユーザー認証(auth_key)が必要です。
  3. あなたをお気に入りに登録しているユーザーのみ見れる(supporter)

    TINAMIの作品検索で「お気に入りユーザー限定」と表示される作品が該当します。 この作品の情報を取得する時は、ユーザー認証(auth_key)、およびユーザーがその作品のクリエイターを「お気に入り」に登録している必要があります。
※公開レベルは、/content/search(作品検索)のレスポンスに含まれています。

作品に設定された年齢制限は以下の3つです。

  • 1 => [制限なし] 人物のヌードやセミヌードを含まない作品。
  • 2 => [制限なし] 人物のセミヌード、水着や下着姿などを含む作品。表示では「1」との区別はありません。
  • 3 => [15歳未満禁止] 人物のヌードを含んだ作品。この場合のヌードとは、ポートレイトのレベルで、性器の露出はないものとします。

/auth(ユーザー認証)

メールアドレスとパスワードを使用してユーザーの認証を行います。成功した場合は認証キーであるauth_keyを返します。 auth_keyは、ユーザー認証が必要なAPIを呼び出す時に使用します。 なお、auth_keyの値は発行されてから一定の時間のみ有効です。 使用期限が過ぎた場合、APIは「認証キーの有効期限が切れました」というエラーメッセージを含んだレスポンスを返します。

ログインをして、そのままログアウトせずに別のメールアドレスとパスワードを/authに送った場合、 ユーザーが切り替わずに既にログインしているユーザーのAuthキーを返す可能性があります。(クッキーを自動的に保存するクライアントを使用している場合) 必ず一度ログアウトをしてから、新しいメールアドレスとパスワードを送るようにして下さい。

Arguments

POSTメソッドで実行して下さい。

api_key(必須)
APIキー
email(必須)
メールアドレス
password(必須)
パスワード

Example Response

<?xml version="1.0" encoding="utf-8"?>
<rsp stat="ok">
  <auth_key>06f7d3cff81ae8e70543b9fd433f9958</auth_key>
</rsp>
<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="fail">
  <err msg="メールアドレスが入力されていません パスワードが入力されていません "/>
</rsp>

ページの先頭へ

/login/info(ログイン情報の取得)

ログイン情報を取得します。

Authentication

このメソッドは認証が必要です。

Arguments

api_key(必須)
APIキー
auth_key(必須)
Authキー

Example Response

ユーザーの場合

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
<user no="12345"/>
</rsp>

クリエイターの場合

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
<user no="12345"/>
<creator id="6789"/>
</rsp>

ページの先頭へ

/logout(ログアウト)

ログアウトします。

Arguments

api_key(必須)
APIキー
auth_key
Authキー

Example Response

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
</rsp>

ページの先頭へ

作品を検索します。

Authentication

このメソッドは認証が必要ありません。
ただし年齢制限のついた作品を結果に含めたい場合はユーザー認証(auth_key)が必要です。

Arguments

api_key(必須)
APIキー
auth_key
Authキー
text
キーワード
tags
タグ
search
すべての語を含むand
いずれかの語を含むor

指定がない場合はandになります。

sort
新着順new
支援スコアの高い順score
支援数の多い順value
閲覧数の多い順view
ランダムrand

指定がない場合は新着順に並びます。

cont_type[]
イラスト1
マンガ2
モデル3
小説4
コスプレ5

指定がない場合は全てが検索対象になります。

page
表示ページ。指定しない場合は1ページが表示されます。
perpage
1つのページの表示件数。指定しない場合は20件になります。
prof_id
プロフィールID
お気に入りの取得、および作品情報の取得のレスポンスに含まれる、<creator id="xxxx">の値を設定して下さい。
safe
1を指定するとアダルトコンテンツを含まない

Example Response

http://api.tinami.com/content/search?cont_type[]=1&cont_type[]=2

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
  <contents total="486402" page="1" pages="4865" perpage="100">
    <content id="123456" type="illust">
      <title>作品タイトル</title>
      <view_level>公開レベル</view_level>
      <age_level>年齢制限</age_level>
      <thumbnails>
        <thumbnail_150x150 url="http://img.tinami.com/....gif" width="112" height="120"/>
      </thumbnails>
    </content>
  </contents>
</rsp>

ページの先頭へ

/bookmark/content/list(お気に入りクリエイター作品の取得)

お気に入りクリエイター作品を取得します。

Authentication

このメソッドは認証が必要です。

Arguments

api_key(必須)
APIキー
auth_key(必須)
Authキー
page
表示ページ。指定しない場合は1ページが表示されます。
perpage
1つのページの表示件数。指定しない場合は20件になります。
safe
1を指定するとアダルトコンテンツを含まない

Example Response

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
  <contents total="486402" page="1" pages="4865" perpage="100">
    <content id="123456" type="illust">
      <title>作品タイトル</title>
      <view_level>公開レベル</view_level>
      <age_level>年齢制限</age_level>
      <thumbnails>
        <thumbnail_150x150 url="http://img.tinami.com/....gif" width="112" height="120"/>
      </thumbnails>
    </content>
  </contents>
</rsp>

ページの先頭へ

/friend/recommend/content/list(友達が支援した作品の取得)

友達が支援した作品を取得します。

Authentication

このメソッドは認証が必要です。

Arguments

api_key(必須)
APIキー
auth_key(必須)
Authキー
page
表示ページ。指定しない場合は1ページが表示されます。
perpage
1つのページの表示件数。指定しない場合は20件になります。
safe
1を指定するとアダルトコンテンツを含まない

Example Response

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
  <contents total="486402" page="1" pages="4865" perpage="100">
    <content id="123456" type="illust">
      <title>作品タイトル</title>
      <view_level>公開レベル</view_level>
      <age_level>年齢制限</age_level>
      <thumbnails>
        <thumbnail_150x150 url="http://img.tinami.com/....gif" width="112" height="120"/>
      </thumbnails>
    </content>
  </contents>
</rsp>

ページの先頭へ

/watchkeyword/content/list(ウォッチキーワード該当作品の取得)

ウォッチキーワードの該当作品を取得します。

Authentication

このメソッドは認証が必要です。

Arguments

api_key(必須)
APIキー
auth_key(必須)
Authキー
page
表示ページ。指定しない場合は1ページが表示されます。
perpage
1つのページの表示件数。指定しない場合は20件になります。
safe
1を指定するとアダルトコンテンツを含まない

Example Response

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
  <contents total="486402" page="1" pages="4865" perpage="100">
    <content id="123456" type="illust">
      <title>作品タイトル</title>
      <view_level>公開レベル</view_level>
      <age_level>年齢制限</age_level>
      <thumbnails>
        <thumbnail_150x150 url="http://img.tinami.com/....gif" width="112" height="120"/>
      </thumbnails>
    </content>
  </contents>
</rsp>

ページの先頭へ

/collection/list(コレクションの取得)

コレクションを取得します。

Authentication

このメソッドは認証が必要です。

Arguments

api_key(必須)
APIキー
auth_key(必須)
Authキー
page
表示ページ。指定しない場合は1ページが表示されます。
perpage
1つのページの表示件数。指定しない場合は20件になります。
safe
1を指定するとアダルトコンテンツを含まない

Example Response

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
  <contents total="486402" page="1" pages="4865" perpage="100">
    <content id="123456" type="illust">
      <age_level>年齢制限</age_level>
      <thumbnails>
        <thumbnail_150x150 url="http://img.tinami.com/....gif" width="112" height="120"/>
      </thumbnails>
    </content>
  </contents>
</rsp>

ページの先頭へ

/collection/add(コレクションに追加)

作品をコレクションに追加します。

Authentication

このメソッドは認証が必要です。

Arguments

api_key(必須)
APIキー
auth_key(必須)
Authキー
cont_id(必須)
作品ID

Example Response

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
</rsp>

ページの先頭へ

/bookmark/list(お気に入りの取得)

お気に入りクリエイターを取得します。

Authentication

このメソッドは認証が必要です。

Arguments

api_key(必須)
APIキー
auth_key(必須)
Authキー
page
表示ページ。指定しない場合は1ページが表示されます。
perpage
1つのページの表示件数。指定しない場合は20件になります。

Example Response

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
  <creators total="147" page="1" pages="8" perpage="20">
    <creator id="12345">
      <name>名前</name>
      <thumbnail>サムネイル</thumbnail>
    </creator>
  </creators>
</rsp>

ページの先頭へ

/bookmark/add(お気に入りに追加)

クリエイターをお気に入りに追加します。

Authentication

このメソッドは認証が必要です。

Arguments

api_key(必須)
APIキー
auth_key(必須)
Authキー
prof_id(必須)
プロフィールID
お気に入りの取得、および作品情報の取得のレスポンスに含まれる、<creator id="xxxx">の値を設定して下さい。

Example Response

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
</rsp>

ページの先頭へ

/ranking(ランキングの取得)

ランキングを取得します。

Authentication

このメソッドは認証が必要ありません。

Arguments

api_key(必須)
APIキー
auth_key
Authキー
category(必須)
総合0
イラスト1
マンガ2
モデル3
小説4
コスプレ5

Example Response

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
  <contents>
    <content id="123456">
      <thumbnails>
        <thumbnail_150x150 url="http://img.tinami.com/....gif"  width="112" height="120"/>
      </thumbnails>
    </content>
  </contents>
</rsp>

ページの先頭へ

/content/info(作品情報の取得)

作品情報を取得します。

Authentication

このメソッドは認証が必要ありません。

Arguments

api_key(必須)
APIキー
auth_key
Authキー
cont_id(必須)
作品ID
dates
作品の投稿日時も取得したい場合、1を指定
models
複数枚のモデル画像を取得したい場合は、1を指定

Example Response

イラスト、モデル、コスプレ

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
  <content type="illust" issupport="1" iscollection="0">
    <title>作品タイトル</title>
    <creator id="12345" isbookmark="1">
      <name>名前</name>
      <thumbnail>サムネイル</thumbnail>
    </creator>
    <description>説明</description>
    <thumbnails>
      <thumbnail_150x150 url="http://img.tinami.com/....gif"  width="112" height="120"/>
    </thumbnails>
    <image>
      <url>http://img.tinami.com/....gif</url>
      <width>640</width>
      <height>480</height>
    </image>
    <total_view>5</total_view>
    <user_view>4</user_view>
    <valuation>2</valuation>
    <tags>
        <tag>タグ1</tag>
        <tag>タグ2</tag>
        <tag>タグ3</tag>
    </tags>
  </content>
</rsp>

モデル(複数)

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
  <content type="model" issupport="1" iscollection="0">
    <title>作品タイトル</title>
    <creator id="12345" isbookmark="1">
      <name>名前</name>
      <thumbnail>サムネイル</thumbnail>
    </creator>
    <description>説明</description>
    <thumbnails>
      <thumbnail_150x150 url="http://img.tinami.com/....gif"  width="112" height="120"/>
    </thumbnails>
    <images total="2">
      <image>
        <url>http://img.tinami.com/....gif</url>
        <width>640</width>
        <height>480</height>
      </image>
      <image>
        <url>http://img.tinami.com/....gif</url>
        <width>800</width>
        <height>600</height>
      </image>
    </images>
    <total_view>5</total_view>
    <user_view>4</user_view>
    <valuation>2</valuation>
    <tags>
        <tag>タグ1</tag>
        <tag>タグ2</tag>
        <tag>タグ3</tag>
    </tags>
  </content>
</rsp>

マンガ

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
  <content type="manga" issupport="0" iscollection="1">
    <title>作品タイトル</title>
    <creator id="12345" isbookmark="0">
      <name>名前</name>
      <thumbnail>サムネイル</thumbnail>
    </creator>
    <description>説明</description>
    <thumbnails>
      <thumbnail_150x150 url="http://img.tinami.com/....gif" width="112" height="120"/>
    </thumbnails>
    <images total="2">
      <image>
        <url>http://img.tinami.com/....gif</url>
        <width>640</width>
        <height>480</height>
      </image>
      <image>
        <url>http://img.tinami.com/....gif</url>
        <width>800</width>
        <height>600</height>
      </image>
    </images>
    <total_view>5</total_view>
    <user_view>4</user_view>
    <valuation>2</valuation>
    <tags>
        <tag>タグ1</tag>
        <tag>タグ2</tag>
        <tag>タグ3</tag>
    </tags>
  </content>
</rsp>

小説

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
  <content type="novel" issupport="0" iscollection="1">
    <title>作品タイトル</title>
    <creator id="12345" isbookmark="0">
      <name>名前</name>
      <thumbnail>サムネイル</thumbnail>
    </creator>
    <description>説明</description>
    <thumbnails>
      <thumbnail_150x150 url="http://img.tinami.com/....gif" width="112" height="120"/>
    </thumbnails>
    <pages total="2">
      <page><![CDATA[1ページ目のHTML]]></page></page>
      <page><![CDATA[2ページ目のHTML]]></page></page>
    </pages>
    <total_view>5</total_view>
    <user_view>4</user_view>
    <valuation>2</valuation>
    <tags>
        <tag>タグ1</tag>
        <tag>タグ2</tag>
        <tag>タグ3</tag>
    </tags>
  </content>
</rsp>

dates引数に1を指定した場合(dates項目が追加されます)

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
  <content type="illust" issupport="1" iscollection="0">
    <title>作品タイトル</title>
    ………
    <tags>
        <tag>タグ1</tag>
    </tags>
    <dates posted="2012-03-07 17:30:00" />
  </content>
</rsp>

未登録ユーザーが公開レベル「ユーザー登録している人なら誰でも見れる」の作品を見ようとした場合

<?xml version="1.0" encoding="utf-8"?>
<rsp stat="user_only">
<err msg="この作品は登録ユーザー限定の作品です。 "/>
</rsp>

お気に入りに入れていないユーザーが公開レベル「あなたをお気に入りに登録しているユーザーのみ見れる」の作品を見ようとした場合

<?xml version="1.0" encoding="utf-8"?>
<rsp stat="bookmark_user_only">
  <creator id="1234"/>
<err msg="この作品はお気に入りユーザー限定の作品です。 "/>
</rsp>

ページの先頭へ

/creator/info(クリエイター情報の取得)

クリエイター情報を取得します。

Authentication

このメソッドは認証が必要ありません。

Arguments

api_key(必須)
APIキー
auth_key
Authキー
prof_id(必須)
プロフィールID
お気に入りの取得、および作品情報の取得のレスポンスに含まれる、<creator id="xxxx">の値を設定して下さい。

Example Response

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
  <creator isbookmark="0">
    <name>名前</name>
    <thumbnail>サムネイル</thumbnail>
  </creator>
</rsp>

ページの先頭へ

/content/comment/list(コメントの取得)

作品コメントを取得します。

Authentication

このメソッドは認証が必要ありません。

Arguments

api_key(必須)
APIキー
cont_id(必須)
作品ID

Example Response

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
  <comments>
    <comment id="123" authorname="ユーザー1" datecreate="2010-03-15 16:55">コメント1</comment>
    <comment id="456" authorname="ユーザー2" datecreate="2010-03-14 12:03">コメント2</comment>
    <comment id="789" authorname="ユーザー3" datecreate="2010-02-24 16:25">コメント3</comment>
  </comments>
</rsp>

ページの先頭へ

/content/comment/add(コメントを追加)

作品にコメントを追加する

Authentication

このメソッドは認証が必要です。

Arguments

api_key(必須)
APIキー
auth_key(必須)
Authキー
cont_id(必須)
作品ID
comment(必須)
コメント(最大512文字)

Example Response

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
</rsp>

ページの先頭へ

/content/comment/remove(コメントの削除)

作品からコメントを削除します。

Authentication

このメソッドは認証が必要です。

Arguments

api_key(必須)
APIキー
auth_key(必須)
Authキー
comment_id(必須)
コメントID

Example Response

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
</rsp>

ページの先頭へ

/content/support(支援する)

作品を支援します。作品情報のissupportが0の場合にユーザーはその作品を支援することができます。支援をすると新しい支援数が返ります。この値を作品の支援数として置き換えてください。
※一度支援をしたら、再びその作品を支援することは出来ません。支援ボタンを無効にしてください。

Authentication

このメソッドは認証が必要です。

Arguments

api_key(必須)
APIキー
auth_key(必須)
Authキー
cont_id(必須)
作品ID

Example Response

<rsp stat="ok">
<status supports="26"/>
</rsp>

ページの先頭へ

tinami.jp エンコーディング方法

tinami.jpは、TINAMI専用の短縮URLドメインです。
例えば、http://tinami.jp/536v にアクセスすると、http://www.tinami.com/view/237415が表示されます。

以下の方法で、作品やクリエイタープロフィールのページに直接アクセスできる短縮URLを作ることができます。

投稿作品への短縮URL

http://tinami.jp/作品コード

作品コードは、作品ページ(http://www.tinami.com/view/XXXX)のXXXXの数字(作品ID)を、36進数に変換したものです。

例:作品ID=237415をコードに変換(PHP)

$content_id = 237415;
$code = base_convert($content_id, 10, 36);
echo 'http://tinami.jp/' . $code;

クリエイタープロフィール

http://tinami.jp/c/プロフィールID

プロフィールIDは、クリエイターのプロフィールページ(http://www.tinami.com/creator/profile/XXXX)のXXXX部分の数値です。

例:http://tinami.jp/c/10 -> http://www.tinami.com/creator/profile/10 が表示されます

ユーザープロフィール

http://tinami.jp/p/ユーザーID

ユーザーIDは、ユーザーのプロフィールページ(http://www.tinami.com/profile/XXXX)のXXXXに書かれた数値です。

例:http://tinami.jp/p/10 -> http://www.tinami.com/profile/10 が表示されます

ページの先頭へ