isaackogan / TikTokLive

Python library to receive live stream events (comments, gifts, etc.) in realtime from TikTok LIVE.
https://isaackogan.github.io/TikTokLive/
MIT License
752 stars 154 forks source link

pay_grade is always empty in RoomUserSeqEvent #212

Open xerovue opened 1 month ago

xerovue commented 1 month ago

Describe the bug

In the sample code below

1- rank.user.pay_grade is empty. 2- rank.user is only set for the first 5 records.

from TikTokLive.client.client import TikTokLiveClient
from TikTokLive.events import *

client: TikTokLiveClient = TikTokLiveClient(
    unique_id="@rambovillanueva",
)

@client.on(RoomUserSeqEvent)
async def on_connect(event: RoomUserSeqEvent):
    print('RoomUserSeqEvent')
    for rank in event.ranks_list:
        print(rank.rank,
              rank.score, 
              rank.user.display_id, 
              rank.user.pay_grade)

if __name__ == '__main__':
    client.run()

Sample output

RoomUserSeqEvent
1 403260 juanescorzaelpatron UserPayGrade()
2 257689 .kenia1216 UserPayGrade()
3 39937 jgs.1781 UserPayGrade()
4 35000 allwayshere713 UserPayGrade()
5 34217 jc.mp85 UserPayGrade()
6 30001  UserPayGrade()
7 24797  UserPayGrade()
8 24455  UserPayGrade()
9 18988  UserPayGrade()
10 15108  UserPayGrade()
11 12601  UserPayGrade()
12 10516  UserPayGrade()
13 10001  UserPayGrade()
14 7296  UserPayGrade()
15 6000  UserPayGrade()
16 5300  UserPayGrade()

Package Version

v6.0.4.

Operating System

MacOS

isaackogan commented 1 month ago

Not necessarily a bug. Just because there's a proto definition doesn't mean TikTok send that data.

You can try using a sessionid and seeing if that makes a difference but it may very well just not be sent over the web API.