Giter Site home page Giter Site logo

pydouyu's Introduction

pydouyu

PyPI PyPI - Downloads PyPI - Python Version

斗鱼TV三方API、弹幕接口实现

Note

  • 目前新的弹幕服务器域名切换到了danmuproxy.douyu.com --2022.12.08
  • 斗鱼官方提供的“openbarrage.douyutv.com”已经不维护,见issue#1,现在需要手动指定弹幕服务器ip来保持正常运行 --2020.07.08

Feature

  • 官方已公布的斗鱼三方API完整实现
  • 自动重连
  • 稳定、无(少)数据遗漏

Install

  • pip3 install pydouyu

Example

from pydouyu.client import Client
import time
import sys


def chatmsg_handler(msg):
    output = time.strftime("[%Y-%m-%d %H:%M:%S] ", time.localtime()) + msg['nn'] + ": " + msg['txt']
    print(output)
    sys.stdout.flush()


def uenter_handler(msg):
    output = time.strftime("[%Y-%m-%d %H:%M:%S] ", time.localtime()) + msg['nn'] + " 进入了直播间"
    print(output)
    sys.stdout.flush()


c = Client(room_id=562590)
c.add_handler('chatmsg', chatmsg_handler)
c.add_handler('uenter', uenter_handler)
c.start()

Usage

  • 运行 Demo
    • git clone https://github.com/Kexiii/pydouyu.git
    • cd pydouyu
    • python3 example.py
  • 二次开发
    • 示例代码见 example.py
    • 用户可以自定义handler函数,并且调用Client.add_handler注册
    • Client.add_handler传入的第一个参数为消息类型,有哪些消息类型见下文弹幕协议
    • msg是一个dict,其的各字段见下文中的弹幕协议
  • 弹幕协议

pydouyu's People

Contributors

kexiii avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

pydouyu's Issues

連線一段時間後會斷線,無法自動重連

你好:
感謝分享這好用的套件,這邊回報一個小問題
barrage_host 如果使用網址我會連不上,因此是直接使用IP
連線一段時間(不確定多久,挺久的),就會無法自動重連
這是因為很久沒收到任何訊息導致的嗎?
因為我目前只是掛著在測試,後來我自己再去頻道發幾個訊息好像還是能接收到

`WARNING:root:Socket recv failed. Exception: [WinError 10060] 連線嘗試失敗,因為連線對象有一段時間並未正確回應,或是連線建立失敗,因為連線的主機無法回應。

WARNING:root:Socket closed

WARNING:root:Socket connect failed with 119.96.201.28:8601. Exception: [WinError 10038] 嘗試操作的對象不是通訊端。

WARNING:root:Try reconnect in 10 seconds

WARNING:root:Socket connect failed with 119.96.201.28:8601. Exception: [WinError 10060] 連線嘗試失敗,因為連線對象有一段時間並未正確回應,或是連線建立失敗,因為
連線的主機無法回應。

WARNING:root:Try reconnect in 10 seconds

WARNING:root:Socket connect failed with 119.96.201.28:8601. Exception: [WinError 10060] 連線嘗試失敗,因為連線對象有一段時間並未正確回應,或是連線建立失敗,因為
連線的主機無法回應。

WARNING:root:Try reconnect in 10 seconds

WARNING:root:Socket connect failed with 119.96.201.28:8601. Exception: [WinError 10060] 連線嘗試失敗,因為連線對象有一段時間並未正確回應,或是連線建立失敗,因為
連線的主機無法回應。

WARNING:root:Try reconnect in 10 seconds

WARNING:root:Socket connect failed with 119.96.201.28:8601. Exception: [WinError 10060] 連線嘗試失敗,因為連線對象有一段時間並未正確回應,或是連線建立失敗,因為
連線的主機無法回應。

WARNING:root:Try reconnect in 10 seconds

WARNING:root:Socket connect failed with 119.96.201.28:8601. Exception: [WinError 10060] 連線嘗試失敗,因為連線對象有一段時間並未正確回應,或是連線建立失敗,因為
連線的主機無法回應。`

WARNING:root:Socket connect failed with openbarrage.douyutv.com:8601. Exception: [Errno 8] nodename nor servname provided, or not known

WARNING:root:Socket connect failed with openbarrage.douyutv.com:8601. Exception: [Errno 8] nodename nor servname provided, or not known

aierror                                  Traceback (most recent call last)
/opt/anaconda3/lib/python3.8/site-packages/pydouyu/tcp_socket.py in connect(self)
     31                 try:
---> 32                     self.socket.connect((self.host, self.port))
     33                 except Exception as e:

gaierror: [Errno 8] nodename nor servname provided, or not known

openbarrage.douyutv.com:8601

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.