PythonでSkype

Python Extension for Windows (pywin32; http://sourceforge.net/projects/pywin32/) と Skype4COM (https://developer.skype.com/Download) を使うと簡単にSkypePythonから操作できる。

おっと、当然ですが Windows の話。クロスプラットフォームにするなら、Skype4Java (Java版のAPIラッパー)使ってJythonで書くのがcoolかも。

pywin32はeasy_installで入ります。

>easy_install pywin32

インストール後、*.dll を windows\system32 にコピーする必要がある場合があるので注意(ちょっとはまった)。

追記

*.dllは、

%PYTHONHOME%\Lib\site-packages\pywin32*\pywin32_system32

にある。

Skyp4COMはダウンロードして、展開してできたDLLをカレントにおいておけばとりあえずOK。これは勘違い。

  1. Skypeインストール時に拡張なんたらオプションを指定していれば、すでに入っている。
  2. 入っていなかったら、ダウンロードしたDLLを、
>regsvr32 skype4com.dll

で登録する。
のどちらかが必要。

チャットで発言する:

>>> import win32com.client
>>> skype = win32com.client.Dispatch('Skype4COM.Skype')
>>> skype.ActiveChats[0].SendMessage('test')
<COMObject SendMessage>

コールする:

>>> import win32com.client
>>> skype = win32com.client.Dispatch('Skype4COM.Skype')
>>> call = skype.PlaceCall('Skype名')

Friendsを取得する

>>> import win32com.client
>>> skype = win32com.client.Dispatch('Skype4COM.Skype')
>>> for f in skype.Friends: 
...   print f.Handle, f.FullName
...

Skype4COM は、Skype社のオフィシャルなAPIラッパーです。単にSkypeを裏から操作するだけでなく、なんだかいろいろなことができそうです。

ドキュメント https://developer.skype.com/Docs/Skype4COMLib

Skype4Py (http://skype4py.sourceforge.net/) というのもあるみたい。クロスプラットフォーム(とりあえずLinuxWindows)の、Pythonラッパー。

追記

こっちにも書いた→ http://www.objectclub.jp/ml-arch/magazine/207.html