@@ -657,6 +657,27 @@ async def get_stream_info(self, live_url: str) -> StreamData:
657
657
return await self .live_stream .fetch_stream_url (json_data , self .record_quality )
658
658
659
659
660
+ class ChangliaoHandler (PlatformHandler ):
661
+ platform = "changliao"
662
+
663
+ def __init__ (
664
+ self ,
665
+ proxy : str | None = None ,
666
+ cookies : str | None = None ,
667
+ record_quality : str | None = None ,
668
+ platform : str | None = None ,
669
+ ) -> None :
670
+ super ().__init__ (proxy , cookies , record_quality , platform )
671
+ self .live_stream : streamget .ChangliaoLiveStream | None = None
672
+
673
+ @trace_error_decorator
674
+ async def get_stream_info (self , live_url : str ) -> StreamData :
675
+ if not self .live_stream :
676
+ self .live_stream = streamget .ChangliaoLiveStream (proxy_addr = self .proxy , cookies = self .cookies )
677
+ json_data = await self .live_stream .fetch_web_stream_data (url = live_url )
678
+ return await self .live_stream .fetch_stream_url (json_data , self .record_quality )
679
+
680
+
660
681
class ZhihuHandler (PlatformHandler ):
661
682
platform = "zhihu"
662
683
@@ -1023,6 +1044,7 @@ async def get_stream_info(self, live_url: str) -> StreamData:
1023
1044
AcfunHandler .register (r"live.acfun.cn/" )
1024
1045
InkeHandler .register (r"https://.*\.inke\.cn/" )
1025
1046
YinboHandler .register (r"live.ybw1666.com" )
1047
+ ChangliaoHandler .register (r".*\.tlclw\.com" )
1026
1048
ZhihuHandler .register (r"https://.*\.zhihu\.com/" )
1027
1049
ChzzkHandler .register (r"chzzk\.naver\.com/" )
1028
1050
HaixiuHandler .register (r"https://.*\.haixiutv\.com/" )
0 commit comments