protected function syncPlaylists($videoId, KalturaYouTubeDistributionJobProviderData $providerData) { $fieldValues = unserialize($providerData->fieldValues); $youtubeChannel = isset($fieldValues[KalturaYouTubeDistributionField::VIDEO_CHANNEL]) ? $fieldValues[KalturaYouTubeDistributionField::VIDEO_CHANNEL] : null; $newVideoPlaylists = isset($fieldValues[KalturaYouTubeDistributionField::PLAYLISTS]) ? $fieldValues[KalturaYouTubeDistributionField::PLAYLISTS] : null; $clientId = $providerData->googleClientId; $clientSecret = $providerData->googleClientSecret; $tokenData = $providerData->googleTokenData; if (!$newVideoPlaylists && !$tokenData) { // no playlists and token was not setup, do nothing return $providerData->currentPlaylists; } if (!$youtubeChannel) { KalturaLog::err('YouTube channel was not found'); return $providerData->currentPlaylists; } if (!$videoId) { KalturaLog::err('No video id'); return $providerData->currentPlaylists; } $youtubeService = YouTubeDistributionGoogleClientHelper::getYouTubeService($clientId, $clientSecret, $tokenData); $playlistSync = new YouTubeDistributionPlaylistsSync($youtubeService); $currentPlaylists = $playlistSync->sync($youtubeChannel, $videoId, $providerData->currentPlaylists, $newVideoPlaylists); return $currentPlaylists; }