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

pythonでニコ生アラートAPIにログインする

Page not found · GitHubに整理したコードぶち込みました.

ニコ生アラート(本家)の仕様とは (ニコナマアラートホンケノシヨウとは) [単語記事] - ニコニコ大百科の内容通りに書いてみた.
xml2dictっていうxmlからpythonのディクショナリに変換するライブラリを使っています.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import urllib2
import urllib
import xml2dict
from pprint import pprint


mail = 'YOUR_MAIL_ADDRESS'
password = 'YOUR_NICONICO_PASSWORD'
xml = xml2dict.XML2Dict()


query = {'mail':mail, 'password':password}
res = urllib2.urlopen('https://secure.nicovideo.jp/secure/login?site=nicolive_antenna',
  urllib.urlencode(query))

res_data = xml.fromstring(res.read())
# sample res_data
#{'nicovideo_user_response': {'status': {'value': 'ok'},
#                             'ticket': {'value': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'},
#                             'value': '\n\t'}}

ticket = res_data.nicovideo_user_response.ticket

query = {'ticket':ticket}
res = urllib2.urlopen('http://live.nicovideo.jp/api/getalertstatus', urllib.urlencode(query))
res_data = xml.fromstring(res.read())
# sample res_data
#{'getalertstatus': {'communities': {'community_id': {'value': 'co9320'}},
#                    'ms': {'addr': {'value': 'twr02.live.nicovideo.jp'},
#                           'port': {'value': '2532'},
#                           'thread': {'value': 'xxxxxxxxxx'}},
#                    'status': {'value': 'ok'},
#                    'time': {'value': '1324980560'},
#                    'user_age': {'value': '19'},
#                    'user_hash': {'value': 'xxxxxxxxxxxxxxxxxxxxxxxxxxx'},
#                    'user_id': {'value': 'xxxxxxxx'},
#                    'user_name': {'value': 'miettal'},
#                    'user_prefecture': {'value': '12'},
#                    'user_sex': {'value': '1'}}}

pprint(res_data)