[PYTHON] Ce que vous pouvez faire avec l'API vol.1

introduction

Cette fois, je voudrais vous présenter ce que vous pouvez faire avec l'API.

L'API ici est quelque chose comme une fonction qui peut être appelée à tout moment si vous êtes connecté à Internet.

Nous prévoyons d'introduire ce qui est ouvert au public par les entreprises et les particuliers.

souriant

Comment créer ma liste et enregistrer ma liste avec la vidéo Nico Nico

En référence à la page ici, j'ai écrit une vidéo Nico Nico pour créer et enregistrer ma liste.

nico_mylist_add.py


#!/usr/bin/env python
#coding: utf8
import sys, re, cgi, urllib, urllib2, cookielib, xml.dom.minidom, time, netrc
import json
 
#netrc
netrc = netrc.netrc()
userid,a,passwd = netrc.authenticators("nicovideo")
 
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)
 
#S'identifier
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}) )
#Obtenez un jeton
token = getToken()
 
#argv
myn = sys.argv[1]
argvs = sys.argv[2:]
 
#Créer ma liste et enregistrer des vidéos
mid = mylist_create(myn)
addvideo_tomylist(mid, argvs )

Il est facile à utiliser et donne l'autorisation d'exécution au fichier. Ensuite, passez l'URL et exécutez.

python


$ chmod +x nico_mylist_add.py

$ ./nico_mylist_add.py mylistname sm9 sm1097445 sm1715919

Les changements sont (1) les informations de connexion sont obtenues à partir de netrc, et (2) le nom et l'URL de Ma liste sont obtenus à partir des arguments.

Obtenez les informations de connexion de netrc

Le "netrc" est le suivant.

python


$ cat ~/.netrc
 
#############################
machine   nicovideo
login     [email protected]
password  pass123
#############################

Le traitement est le suivant.

python


#!/usr/bin/env python
import netrc
netrc = netrc.netrc()
l, a, p = netrccfg.authenticators("nicovideo")
print "My Login = %s" % (l)
print "My Password = %s" % (p)
print "My Account= %s" % (a)

Récupère le nom et l'URL de Ma liste à partir de l'argument

python


#!/usr/bin/env python
import sys
mylistname = sys.argv[1]
argvs = sys.argv[2:]
print mylistname
print argvs

Comment enregistrer ma liste dans ma liste existante avec la vidéo Nico Nico

Par exemple, pour enregistrer une URL dans une Ma liste existante, apportez les modifications suivantes.

Tout d'abord, changez ʻaddvideo_tomylist. Mettez group_id dans la partie de xxxx`.

Ici, pour obtenir le group_id, utilisez http: // www.nicovideo.jp / api / mylistgroup / list. Peut-être ...

référence: http://efcl.info/wiki/niconicoapi/

def addvideo_tomylist(smids):
    for smid in smids:
        cmdurl = "http://www.nicovideo.jp/api/mylist/add"
        q = {}
        q['group_id'] = xxxxxxxx
        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)

De plus, il n'est plus nécessaire de passer le nom de Ma liste comme argument, changez donc cette partie.

#argv
#myn = sys.argv[1]
argvs = sys.argv[1:]

Google+

Essayez d'obtenir des informations sur l'utilisateur à l'aide de l'API Google+.

Dans Google Cloud Console, créez un projet et activez l'API à utiliser.

Tout d'abord, accédez à l'URL suivante avec un navigateur et récupérez le «code d'autorisation».

python


https://accounts.google.com/o/oauth2/auth?client_id=[identité du client]&redirect_uri=[Rediriger l'URI]&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fplus.me&response_type=code

Veuillez noter que «[]» n'est pas inclus.

ʻAuthorization code est la partie de l'URL de la page sous code = `.

python


$ curl -d client_id=[YOUR Client Id] -d client_secret=[YOUR Client Secret] -d redirect_uri=http%3A%2F%2Flocalhost%2Foauth2callback -d grant_type=authorization_code -d code=[YOUR Authorization code] https://accounts.google.com/o/oauth2/token

ʻAccess_token` etc. seront émis, vous pouvez donc utiliser cette valeur pour obtenir des informations sur l'utilisateur.La page de here est très utile. Ce sera.

python


$ curl -H "Authorization: OAuth [YOUR Access_token]" https://www.googleapis.com/plus/v1/people/me

Notez que ʻaccess_token expire après un certain temps, donc si vous souhaitez créer une application qui utilise l'API Google, vous devez utiliser refresh_token`.

référence: http://mba-hack.blogspot.jp/2013/12/google-api.html

référence

https://github.com/sorah/niconico

https://github.com/google/google-api-ruby-client

https://developers.google.com/+/api/latest/?hl=ja

Recommended Posts

Ce que vous pouvez faire avec l'API vol.1
Python | Ce que vous pouvez faire avec Python
Ce que vous pouvez faire avec des compétences en programmation
Ce que vous pouvez et ne pouvez pas faire avec Tensorflow 2.x
Ce que vous pouvez faire avec les statistiques de la bibliothèque Python standard
Considérez ce que vous pouvez faire avec Python dans l'article Qiita
Vous devenez ingénieur en 100 jours - Jour 35 - Python - Ce que vous pouvez faire avec Python
Liens pour faire ce que vous voulez avec Sublime Text
Ce que vous ne pouvez pas faire avec hstack ou vstack avec dstack
Jusqu'à ce que vous puissiez faire une reconnaissance d'image simple avec Jupyter
[AWS] Que faire lorsque vous souhaitez piper avec Lambda
Que faire si vous ne pouvez pas trier les fichiers avec des indices
[Python] Que faites-vous avec la visualisation de 4 variables ou plus?
Que faire avec l'installation de Magics
Que faire avec la sortie de PYTHON?
Que faire si vous obtenez une erreur de décodage Unicode avec l'installation de pip
Que faire si vous ne pouvez pas construire un projet avec Maven
Analyse des données, que faites-vous après tout?
Jusqu'à ce que vous puissiez utiliser opencv avec python
Résumons ce que vous voulez faire.
Que faire si l'option -f de grep ne fonctionne pas
Que faire si vous vous perdez dans la référence de fichier avec FileNotFoundError
Que faire lorsque TypeError se produit au minimum et au maximum de numpy
Que faire si vous ne pouvez pas installer avec pip dans l'environnement babun
Vous pouvez le faire avec Python! Analyse structurale de cristaux colloïdaux bidimensionnels
Que faire si vous obtenez Impossible de récupérer l'URL 443 avec pip
Jusqu'à ce que vous définissiez ce que vous avez fait avec Django avec Jenkins
swapon failed: Que faire si vous vous fâchez contre l'opération non autorisée
Peut être fait en 5 minutes!? Créez une API de détection de visage avec Fast API et OpenCV et publiez-la sur Heroku
Que faire lorsque le shell pipenv devient impossible
Jusqu'à ce que vous utilisiez l'API Kaggle avec Colab
Pouvez-vous défier Kaggle avec seulement votre iPad?
Vous pouvez facilement créer une interface graphique même avec Python
Si vous les gars dans la cuisine de portée pouvez le faire avec une marge ~ ♪
Jusqu'à ce que vous puissiez utiliser l'API Google Speech
Que comparez-vous avec Python et ==?
Que faire si vous obtenez une erreur lors de l'installation de python avec pyenv
La programmation parallèle est-elle difficile, et si oui, que pouvez-vous y faire?
Que dois-je faire avec DICOM de MPEG2?
Vous pouvez maintenant afficher des diapositives avec nbviewer! [Jupyter]
Qu'utilisez-vous lorsque vous testez avec Python?
Prise en compte du moment où vous pouvez faire du bon travail en 10 ans avec Python3 et Scala3.
Que faire si vous obtenez une erreur d'importation lors de l'importation de matplotlib avec Jupyter
Que faire si vous exécutez python sur IntelliJ et quittez avec une erreur
Que faire si vous ne pouvez pas installer mysqlclient
Aucun module nommé Que faire si vous obtenez "libs.resources"
La lecture du compteur analogique peut être effectuée avec l'exemple MNIST.
Qu'est-ce que pip et comment l'utilisez vous?
Choses à faire lorsque vous commencez à développer avec Django
Notez ce que vous voulez faire à l'avenir avec Razpai
Extruder avec l'API Fusion360
Faites Houdini avec Python3! !! !!
Que fait le rendu de Django
Que faire si vous obtenez une erreur non définie lorsque vous essayez d'utiliser pip avec pyenv
Jusqu'à ce que vous puissiez installer votre propre bibliothèque Python avec pip
Que faire si vous êtes accro aux codes de caractères Windows
Si vous écrivez TinderBot en Python, elle peut le faire
Déplacez ce que vous avez installé avec pip dans l'environnement conda
Que faire si Combinaisons devient «couverture inconnue»
Que faire lorsqu'une erreur se produit avec import _ssl