読者です 読者をやめる 読者になる 読者になる

ottatiのブログ

無職学生がネットにクソアプリをまき散らしていく様子

【Vine API まとめ】流行りのVineを使って面白いウェブサービスとかスマホアプリとか作ろうよの巻

f:id:ottati:20150103125718g:plain     🍣

はじめに

f:id:ottati:20130813193253p:plain

まだまだVineを扱ったウェブサービスやアプリは少ない。でも日本人、老若男女問わず結構Vine使っている。ほら→Twitter - vine.co lang:jaの検索結果

じゃあVineと連携した何か面白いの作ろう!と思ったんだけど、あまりにもVine APIを扱っている記事が少ない、というか無い。日本語のは一件しか見つからず(mitukiii / vine.rb - github)、英語圏にも全然ない。情報少なすぎイ!!

というわけで何時間も消費して調べた結果を公開してみた。
「夏休みの自由研究にVineのクライアントアプリ作るんだあ!」という方に。

Vineとは

最長6秒の動画を共有するアプリ。Twitter社のVine Labsが開発。 Space Invaders!

VineAPI

早速APIを紹介。返ってくるデータの形を見たい人はVine.app API Referenceへ。(ただ、このページ、全然親切ではない。この記事で紹介しているurl達ですら網羅していない。)

  • 返ってくるデータの基本形
    • dataの中にメーンの情報が格納されている
{“code”: “”, “data”: {}, “success”: true, “error”: “”}
  • ページ
?page=<npage>
  • ログイン
POST https://api.vineapp.com/users/authenticate
username=xxx@example.com
password=xxx
  • ログアウト
DELETE https://api.vineapp.com/users/authenticate
  • 人気動画のタイムライン
GET https://api.vineapp.com/timelines/popular
  • Globalのタイムライン
GET https://api.vineapp.com/timelines/global
  • あげあげなタイムライン
GET https://api.vineapp.com/timelines/promoted
  • ログインしたアカウントのタイムライン
GET https://api.vineapp.com/timelines/graph
  • ユーザ個別のタイムライン
GET https://api.vineapp.com/timelines/users/<userid>
  • タグで絞ったタイムライン
GET https://api.vineapp.com/timelines/tags/<tag>
  • likeが付けられた動画のタイムライン
https://api.vineapp.com/timelines/users/<userid>/likes
  • 動画の情報
GET https://api.vineapp.com/timelines/posts/<postid>
  • 動画についたlike/unlike
GET https://api.vineapp.com/posts/<postid>/likes
  • ユーザ情報
GET https://api.vineapp.com/users/me
GET https://api.vineapp.com/users/profiles/<userid>
  • ユーザを検索
GET https://api.vineapp.com/users/search/<query>
  • お知らせ
GET https://api.vineapp.com/users/<userid>/pendingNotificationsCount
  • フォローしているユーザ
GET https://api.vineapp.com/users/<userid>/following
  • フォローされているユーザ
GET https://api.vineapp.com/users/<userid>/follower
  • おすすめのtwitterアカウント
GET https://api.vineapp.com/users/<userid>/following/suggested/twitter
  • タグを検索
GET https://api.vineapp.com/tags/search/<tag>

他にもあると思うので見つけたら教えて下さい。

実際にVine APIを使ってプログラミングしてみる

ここではわかりやすくPythonを使ってシンプルに人気動画のタイムラインを取得してみる。

# -*- coding utf-8 -*-

import requests


# Vineの登録情報
username = "xxxxx@example.com"
password = "*******************"

# 今回使うセッションの作成
session = requests.Session() 

# ログイン処理
d = {'username': username, 'password': password,}
r = session.post("https://api.vineapp.com/users/authenticate", data=d)

# ログイン時に返ってきたデータに含まれるVineのセッションIDを取得
key = r.json()['data']['key']

# 人気タイムラインを取得
# ※ HTTP Headerに「vine-session-id」を付与するのがポイント。
h = {'vine-session-id': key}

r = session.get("https://api.vineapp.com/timelines/popular", headers=h)
timeline = r.json()  # タイムラインのデータ

このAPI使ってなんか面白いの作ろうよ

Vineと他のウェブサービスとを連携して新しい面白いウェブサービススマホアプリなんかが作れるんじゃないかな。