/** * * @param string $container_type * @param Request $request * @return Bridge_Api_Youtube_Container */ public function create_container($container_type, Request $request) { switch ($container_type) { case self::CONTAINER_TYPE_PLAYLIST: $container_desc = $request->get('f_container_description'); $container_title = $request->get('f_container_title'); $new_playlist = $this->_api->newPlaylistListEntry(); if (trim($container_desc) !== '') { $new_playlist->description = $this->_api->newDescription()->setText($container_desc); } $new_playlist->title = $this->_api->newTitle()->setText($container_title); $post_location = 'http://gdata.youtube.com/feeds/api/users/default/playlists'; $entry = $this->_api->insertEntry($new_playlist, $post_location); return new Bridge_Api_Youtube_Container($entry, $container_type, null); break; default: throw new Bridge_Exception_ElementUnknown('Unknown element ' . $container_type); break; } }
public function testAddUpdateAndDeletePlaylistV2() { $service = Zend_Gdata_YouTube::AUTH_SERVICE_NAME; $authenticationURL = 'https://www.google.com/youtube/accounts/ClientLogin'; $httpClient = Zend_Gdata_ClientLogin::getHttpClient($username = $this->user, $password = $this->pass, $service = $service, $client = null, $source = 'Google-UnitTests-1.0', $loginToken = null, $loginCaptcha = null, $authenticationURL); $yt = new Zend_Gdata_YouTube($httpClient, 'Google-UnitTests-1.0', 'ytapi-gdataops-12345-u78960r7-0', 'AI39si6c-ZMGFZ5fkDAEJoCNHP9LOM2LSO1XuycZF7E' . 'yu1IuvkioESqzRcf3voDLymIUGIrxdMx2aTufdbf5D7E51NyLYyfeaw'); $yt->setMajorProtocolVersion(2); $feed = $yt->getPlaylistListFeed($this->ytAccount); // Add new $newPlaylist = $yt->newPlaylistListEntry(); $newPlaylist->setMajorProtocolVersion(2); $titleString = $this->generateRandomString(10); $newPlaylist->title = $yt->newTitle()->setText($titleString); $newPlaylist->summary = $yt->newSummary()->setText('testing'); $postUrl = 'http://gdata.youtube.com/feeds/api/users/default/playlists'; $successfulInsertion = true; try { $yt->insertEntry($newPlaylist, $postUrl); } catch (Zend_Gdata_App_Exception $e) { $successfulInsertion = false; } $this->assertTrue($successfulInsertion, 'Failed to insert a new ' . 'playlist.'); $playlistListFeed = $yt->getPlaylistListFeed('default'); $playlistFound = false; $newPlaylistEntry = null; foreach ($playlistListFeed as $playlistListEntry) { if ($playlistListEntry->title->text == $titleString) { $playlistFound = true; $newPlaylistEntry = $playlistListEntry; break; } } $this->assertTrue($playlistFound, 'Could not find the newly inserted ' . 'playlist.'); // Update it $newTitle = $this->generateRandomString(10); $newPlaylistEntry->title->setText($newTitle); $updatedSuccesfully = true; try { $newPlaylistEntry->save(); } catch (Zend_Gdata_App_Exception $e) { $updatedSuccesfully = false; } $this->assertTrue($updatedSuccesfully, 'Could not succesfully update ' . 'a new playlist.'); // Delete it $deletedSuccesfully = true; try { $newPlaylistEntry->delete(); } catch (Zend_Gdata_App_Exception $e) { $deletedSuccesfully = false; } $this->assertTrue($deletedSuccesfully, 'Could not succesfully delete ' . 'a new playlist.'); }
/** * Create a new playlist for the currently authenticated user * * @param string $playlistTitle Title of the new playlist * @param string $playlistDescription Description for the new playlist * @return void */ function createPlaylist($playlistTitle, $playlistDescription) { $httpClient = getAuthSubHttpClient(); $youTubeService = new Zend_Gdata_YouTube($httpClient); $feed = $youTubeService->getPlaylistListFeed('default'); if (loggingEnabled()) { logMessage($httpClient->getLastRequest(), 'request'); logMessage($httpClient->getLastResponse()->getBody(), 'response'); } $newPlaylist = $youTubeService->newPlaylistListEntry(); $newPlaylist->description = $youTubeService->newDescription()->setText($playlistDescription); $newPlaylist->title = $youTubeService->newTitle()->setText($playlistDescription); if (!$feed instanceof Zend_Gdata_YouTube_PlaylistListFeed) { print 'ERROR - Could not retrieve playlists<br />' . printCacheWarning(); return; } $playlistFeedUrl = 'http://gdata.youtube.com/feeds/users/default/playlists'; try { $updatedEntry = $youTubeService->insertEntry($newPlaylist, $playlistFeedUrl); if (loggingEnabled()) { logMessage($httpClient->getLastRequest(), 'request'); logMessage($httpClient->getLastResponse()->getBody(), 'response'); } } catch (Zend_Gdata_App_HttpException $httpException) { print 'ERROR ' . $httpException->getMessage() . ' HTTP details<br /><textarea cols="100" rows="20">' . $httpException->getRawResponseBody() . '</textarea><br />' . '<a href="session_details.php">' . 'click here to view details of last request</a><br />'; return; } catch (Zend_Gdata_App_Exception $e) { print 'ERROR - Could not create new playlist: ' . $e->getMessage(); return; } print 'Playlist added succesfully.<br /><a href="#" onclick="' . 'ytVideoApp.retrievePlaylists();"' . '">(refresh your playlist listing)</a><br />' . printCacheWarning(); }