TikTok die einen Menschen lieben die App die anderen hassen sie. Ich persönlich bin jetzt seit ein paar Jahren hier auf TikTok unterwegs, aber erst Ende Januar habe ich Zugriff zur Livestream Funktion bekommen.
Nun habe ich auch da schon ein paar Livestreams gemacht und so wollte ich natürich auch in meinem Livestream meinen Chat oder Fragen einblenden. Da ich aber kein RTMP Key habe und es keine API gibt, musste ich ein wenig kreativ werden.
Ich habe mich darum auf die Suche nach einer Lösung gemacht, mit der ich den Chat auslesen kann. Da ich weiss das man mit Python relativ schnell gute Lösungen finden oder entwickeln kann, ging ich dieser Spur nach und da habe ich eine Bibliothek für Python gefunden, die meine Lösung war. Mit TikTokLive kann man soetwas wirklich einfach umsetzen.
Ich habe mir dann noch in den Kopf gesetzt, dass ich gerne die Like Daten in einem externen .json File abspeichern möchte. Und auch das habe ich gemacht. Und hier findet ihr das Video und den Quellcode wie auch die verwendeten Bibliotheken.
Video
Python Bibliothek
Python Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | from TikTokLive import TikTokLiveClient from TikTokLive.types.events import CommentEvent, ConnectEvent, GiftEvent, LikeEvent, FollowEvent, ShareEvent, ViewerCountUpdateEvent #db erstellen db = TinyDB('tiktok_likes.json') check = Query() #Variablen vorbereiten clicks = 0 old_likes = 0 new_likes = 0 # Instantiate the client with the user's username client: TikTokLiveClient = TikTokLiveClient(unique_id="@chefblogger") # Define how you want to handle specific events via decorator @client.on("connect") async def on_connect(_: ConnectEvent): print("Connected to Room ID:", client.room_id) @client.on("like") async def on_like(event: LikeEvent): #print(f"{event.user.uniqueId} hat {event.likeCount} mal den stream geliked. Das sind {event.totalLikeCount} total!") add_likes = event.likeCount user_name = event.user.uniqueId #add to db #check if user drin if db.contains(check.name == user_name) == True: res_name = db.search(check.name == user_name)[0] old_likes = res_name.get('likes') new_likes = old_likes + add_likes db.update({'likes': new_likes}, check.name == user_name) else: #print("nope") db.insert({'name':user_name, 'likes': 1}) @client.on("follow") async def on_follow(event: FollowEvent): print(f"{event.user.uniqueId} folgt dem streamer") @client.on("share") async def on_share(event: ShareEvent): print(f"{event.user.uniqueId} teilte den stream") @client.on("viewer_count_update") async def on_connect(event: ViewerCountUpdateEvent): print("++++Viewer+++: ", event.viewerCount) # Notice no decorator? async def on_comment(event: CommentEvent): print(f"{event.user.nickname} -> {event.comment}") # Define handling an event via "callback" client.add_listener("comment", on_comment) if __name__ == '__main__': # Run the client and block the main thread # await client.start() to run non-blocking client.run() |
0 Kommentare