docs: def addTrack(self, track):
          """
          Add a :class:`MediaStreamTrack` to the set of media tracks which
          will be transmitted to the remote peer.
          """
          # check state is valid
          self.__assertNotClosed()
          if track.kind not in ['audio', 'video']:
              raise InternalError('Invalid track kind "%s"' % track.kind)
  
          # don't add track twice
          self.__assertTrackHasNoSender(track)
  
          for transceiver in self.__transceivers:
              if transceiver.kind == track.kind:
                  if transceiver.sender.track is None:
                      transceiver.sender.replaceTrack(track)
                      transceiver.direction = or_direction(transceiver.direction, 'sendonly')
                      return transceiver.sender
  
          transceiver = self.__createTransceiver(
              direction='sendrecv',
              kind=track.kind,
              sender_track=track)
          return transceiver.sender