def sync(self, videoQuality=None, photoResolution=None, audioBitrate=None, client=None, clientId=None, limit=None,<EOL>unwatched=False, title=None):
if not self.allowSync:<EOL><INDENT>raise BadRequest('<STR_LIT>')<EOL><DEDENT>from plexapi.sync import SyncItem, Policy, MediaSettings<EOL>myplex = self._server.myPlexAccount()<EOL>sync_item = SyncItem(self._server, None)<EOL>sync_item.title = title if title else self.title<EOL>sync_item.rootTitle = self.title<EOL>sync_item.contentType = self.playlistType<EOL>sync_item.metadataType = self.metadataType<EOL>sync_item.machineIdentifier = self._server.machineIdentifier<EOL>sync_item.location = '<STR_LIT>' % quote_plus(self.guid)<EOL>sync_item.policy = Policy.create(limit, unwatched)<EOL>if self.isVideo:<EOL><INDENT>sync_item.mediaSettings = MediaSettings.createVideo(videoQuality)<EOL><DEDENT>elif self.isAudio:<EOL><INDENT>sync_item.mediaSettings = MediaSettings.createMusic(audioBitrate)<EOL><DEDENT>elif self.isPhoto:<EOL><INDENT>sync_item.mediaSettings = MediaSettings.createPhoto(photoResolution)<EOL><DEDENT>else:<EOL><INDENT>raise Unsupported('<STR_LIT>')<EOL><DEDENT>return myplex.sync(sync_item, client=client, clientId=clientId)<EOL>
Add current playlist as sync item for specified device.
            See :func:`plexapi.myplex.MyPlexAccount.sync()` for possible exceptions.

            Parameters:
                videoQuality (int): idx of quality of the video, one of VIDEO_QUALITY_* values defined in
                                    :mod:`plexapi.sync` module. Used only when playlist contains video.
                photoResolution (str): maximum allowed resolution for synchronized photos, see PHOTO_QUALITY_* values in
                                       the module :mod:`plexapi.sync`. Used only when playlist contains photos.
                audioBitrate (int): maximum bitrate for synchronized music, better use one of MUSIC_BITRATE_* values
                                    from the module :mod:`plexapi.sync`. Used only when playlist contains audio.
                client (:class:`plexapi.myplex.MyPlexDevice`): sync destination, see
                                                               :func:`plexapi.myplex.MyPlexAccount.sync`.
                clientId (str): sync destination, see :func:`plexapi.myplex.MyPlexAccount.sync`.
                limit (int): maximum count of items to sync, unlimited if `None`.
                unwatched (bool): if `True` watched videos wouldn't be synced.
                title (str): descriptive title for the new :class:`plexapi.sync.SyncItem`, if empty the value would be
                             generated from metadata of current photo.

            Raises:
                :class:`plexapi.exceptions.BadRequest`: when playlist is not allowed to sync.
                :class:`plexapi.exceptions.Unsupported`: when playlist content is unsupported.

            Returns:
                :class:`plexapi.sync.SyncItem`: an instance of created syncItem.