| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- import requests
- import json
- from loguru import logger
- class BiliLiveAPI:
- def __init__(self, base_url="https://bililive.sv-v.magong.site"):
- self.base_url = base_url
- def get_info(self):
- response = requests.get(self.base_url + "/api/info")
- return response.json()
- def get_lives(self):
- response = requests.get(self.base_url + "/api/lives")
- return response.json()
- def get_live_by_id(self, id):
- response = requests.get(self.base_url + f"/api/lives/{id}")
- return response.json()
-
- '''
- url
- - https://live.douyin.com/403624505949
- return
- - 正常添加 [{'id': 'ee9b0b1908cfece9fa6c38f7f94cd098', 'live_url': 'https://live.douyin.com/403624505949', 'platform_cn_name': '抖音', 'host_name': '芗里香亲(1号)', 'room_name': '进来看看,你空手出去算我输', 'status': False, 'listening': True, 'recording': False, 'initializing': False, 'audio_only': False}]
- - 重复添加 None
- - 添加了一个不存在的房间号 [{'id': '25e7daffbd502c376ba98567950e86c7', 'live_url': 'https://live.douyin.com/33223521594974', 'platform_cn_name': '抖音', 'host_name': '', 'room_name': '', 'status': False, 'listening': True, 'recording': False, 'initializing': False, 'audio_only': False}]
- - 🎈🎈 https://live.douyin.com/{任意数字} ,仍会添加成功,并返回成功的数据,只不过它无法识别到主播信息
- '''
- # 添加重复的 url 会返回 None
- # 正常返回:
- def add_live(self, url, listen=True):
- data = json.dumps([{"url": url, "listen": listen}])
- logger.debug(f"POST {self.base_url}" + "/api/lives" + f"\n{data}")
- response = requests.post(self.base_url + "/api/lives", data=data)
- logger.debug(f"response.status_code: {response.status_code}")
- return response.json()
- def delete_live_by_id(self, id):
- response = requests.delete(self.base_url + f"/api/lives/{id}")
- return response.json()
- def start_listen_live_by_id(self, id):
- response = requests.get(self.base_url + f"/api/lives/{id}/start")
- return response.json()
- def stop_listen_and_record_live_by_id(self, id):
- response = requests.get(self.base_url + f"/api/lives/{id}/stop")
- return response.json()
-
- def get_config(self):
- response = requests.get(self.base_url + "/api/config")
- return response.json()
- def save_lives_to_config(self):
- response = requests.put(self.base_url + "/api/config")
- return response.json()
- def get_raw_config(self):
- response = requests.get(self.base_url + "/api/raw-config")
- return response.json()
- def save_raw_config(self, config):
- data = json.dumps({"config": config})
- response = requests.put(self.base_url + "/api/raw-config", data=data, logger=logger)
- return response.json()
-
- def main():
- api = BiliLiveAPI("https://bililive.sv-v.magong.site")
- # print(api.get_info())
- # print(api.get_lives())
- print(api.add_live('https://live.douyin.com/212140271'))
- if __name__ == "__main__":
- main()
|