This message was deleted.
# ask-ai
s
This message was deleted.
t
Thanks for reaching out, simo.dev. I'm an AI assistant and I'm here to help. Give me a moment while I research this topic.
Yes, in the new Python Agents API, it is possible to control whether an agent subscribes to tracks based on a condition. Here’s how you can achieve this: 1. Set
auto_subscribe
to
AutoSubscribe.SUBSCRIBE_NONE
when configuring your agent. This disables automatic track subscription, allowing you to manage subscriptions manually. 2. Use track subscription events to selectively subscribe to tracks based on your conditions. For example:
Copy code
@ctx.room.on("track_subscribed")
def on_track_subscribed(
    track: rtc.Track,
    publication: rtc.TrackPublication,
    participant: rtc.RemoteParticipant,
):
    # Conditionally handle tracks based on their kind
    if track.kind == rtc.TrackKind.KIND_AUDIO:
        asyncio.create_task(do_something(track))
    elif track.kind == rtc.TrackKind.KIND_VIDEO:
        asyncio.create_task(do_something(track))
Additionally, you can set track subscription permissions using the
set_track_subscription_permissions
method to control who can subscribe to your tracks:
Copy code
def set_track_subscription_permissions(
    self,
    *,
    allow_all_participants: bool,
    participant_permissions: Optional[List[ParticipantTrackPermission]] = None,
) -> None
Let me know if you need further clarification or assistance! Sources: Receiving and publishing tracks | LiveKit Docs | livekit.rtc API documentation | Subscribing to tracks | LiveKit Docs