@@ -170,13 +170,13 @@ async def fetch_channel(self, user_id: int) -> Channel:
170170 data = await self ._fetch_api ("GET" , "channels" , params = {"broadcaster_user_id" : user_id })
171171 return Channel .from_dict (data ["data" ][0 ])
172172
173- async def fetch_livestreams (self , user_id : int ) -> list [ LiveStream ] :
174- """Get livestreams by the user ID.
173+ async def fetch_livestream (self , user_id : int ) -> LiveStream :
174+ """Get livestream by the user ID.
175175
176176 Parameters
177177 ----------
178178 user_id: int
179- The user ID to get livestreams from.
179+ The user ID to get livestream from.
180180
181181 Returns
182182 -------
@@ -186,6 +186,51 @@ async def fetch_livestreams(self, user_id: int) -> list[LiveStream]:
186186 data = await self ._fetch_api ("GET" , "livestreams" , params = {"user_id" : user_id })
187187 return LiveStream .from_dict (data ["data" ][0 ])
188188
189+ async def fetch_livestreams (
190+ self ,
191+ user_id : int | None ,
192+ category_id : int | None ,
193+ language : str | None ,
194+ limit : int | None ,
195+ sort : str = "viewer_count" ,
196+ ) -> list [LiveStream ]:
197+ """Get livestreams.
198+
199+ Parameters
200+ ----------
201+ user_id: int
202+ The user ID to get livestream from.
203+ category_id: int
204+ The category ID to get livestream from.
205+ language: str
206+ The language to get livestream from.
207+ limit: int
208+ The limit of livestreams to get.
209+ sort: str
210+ The sort order of livestreams. Either 'viewer_count' or 'created_at'.
211+
212+ Returns
213+ -------
214+ list[LiveStream]
215+ A list of livestream data.
216+ """
217+ if sort not in {"viewer_count" , "created_at" }:
218+ raise ValueError ("Invalid sort order. Must be either 'viewer_count' or 'created_at'." )
219+
220+ params = {}
221+ if user_id :
222+ params ["user_id" ] = user_id
223+ if category_id :
224+ params ["category_id" ] = category_id
225+ if language :
226+ params ["language" ] = language
227+ if limit :
228+ params ["limit" ] = limit
229+ params ["sort" ] = sort
230+
231+ data = await self ._fetch_api ("GET" , "livestreams" , params = params )
232+ return [LiveStream .from_dict (livestream ) for livestream in data ["data" ]]
233+
189234 async def fetch_categories (self , query : str ) -> list [Category ]:
190235 """Get categories by a query.
191236
0 commit comments