Skip to content

Instantly share code, notes, and snippets.

@syui
Created December 29, 2013 10:58
Show Gist options
  • Save syui/8169289 to your computer and use it in GitHub Desktop.
Save syui/8169289 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
#coding: utf8
import sys, re, cgi, urllib, urllib2, cookielib, xml.dom.minidom, time, netrc
import json
#netrc
netrc = netrc.netrc()
l,a,p = netrc.authenticators("nicovideo")
#login info
userid = l
passwd = p
def getToken():
html = urllib2.urlopen("http://www.nicovideo.jp/my/mylist").read()
for line in html.splitlines():
mo = re.match(r'^\s*NicoAPI\.token = "(?P<token>[\d\w-]+)";\s*',line)
if mo:
token = mo.group('token')
break
assert token
return token
def mylist_create(name):
cmdurl = "http://www.nicovideo.jp/api/mylistgroup/add"
q = {}
q['name'] = name.encode("utf8")
q['description'] = ""
q['public'] = 0
q['default_sort'] = 0
q['icon_id'] = 0
q['token'] = token
cmdurl += "?" + urllib.urlencode(q)
j = json.load( urllib2.urlopen(cmdurl), encoding='utf8')
return j['id']
def addvideo_tomylist(mid,smids):
for smid in smids:
cmdurl = "http://www.nicovideo.jp/api/mylist/add"
q = {}
q['group_id'] = mid
q['item_type'] = 0
q['item_id'] = smid
q['description'] = u""
q['token'] = token
cmdurl += "?" + urllib.urlencode(q)
j = json.load( urllib2.urlopen(cmdurl), encoding='utf8')
time.sleep(0.5)
#ログイン
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookielib.CookieJar()))
urllib2.install_opener(opener)
urllib2.urlopen("https://secure.nicovideo.jp/secure/login",
urllib.urlencode( {"mail":userid, "password":passwd}) )
#トークン取得
token = getToken()
#argv
myn = sys.argv[1]
argvs = sys.argv[2:]
#マイリストの作成と動画の登録
mid = mylist_create(myn)
addvideo_tomylist(mid, argvs )
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment