コード例 #1
0
ファイル: Youtube.php プロジェクト: nlegoff/Phraseanet
 /**
  *
  * @param  string                              $element_id
  * @return Zend_Gdata_YouTube_PlaylistListFeed
  */
 protected function get_PlaylistEntry_from_Id($element_id)
 {
     foreach ($this->_api->getPlaylistListFeed('default') as $playlist_entry) {
         if ($element_id == $playlist_entry->getPlaylistId()->getText()) {
             return $playlist_entry;
         }
     }
     return null;
 }
コード例 #2
0
 /**
  * get playlists by a user
  * @param username
  * @return Zend_Gdata_YouTube_PlaylistListFeed
  */
 public function getPlaylistsByUser($user, $page = 0)
 {
     /* @var $ytq Zend_Gdata_YouTube_VideoQuery */
     $ytq = $this->yt->newVideoQuery(Zend_Gdata_YouTube::USER_URI . '/' . $user . '/playlists');
     $page = $page * self::ITEMS_PER_PAGE;
     $ytq->setStartIndex($page == 0 ? $page : $page + 1);
     $ytq->setMaxResults(self::ITEMS_PER_PAGE);
     $ytq->setOrderBy('published');
     return $this->yt->getPlaylistListFeed(null, $ytq);
 }
コード例 #3
0
ファイル: YouTubeOnlineTest.php プロジェクト: netvlies/zf
 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.');
 }
コード例 #4
0
/**
 * Delete a playlist
 *
 * @param string $newplaylistTitle New title for the playlist to be updated
 * @param string $newPlaylistDescription New description for the playlist to be updated
 * @param string $oldPlaylistTitle Title of the playlist to be updated
 * @return void
 */
function updatePlaylist($newPlaylistTitle, $newPlaylistDescription, $oldPlaylistTitle)
{
    $httpClient = getAuthSubHttpClient();
    $youTubeService = new Zend_Gdata_YouTube($httpClient);
    $feed = $youTubeService->getPlaylistListFeed('default');
    if (loggingEnabled()) {
        logMessage($httpClient->getLastRequest(), 'request');
        logMessage($httpClient->getLastResponse()->getBody(), 'response');
    }
    $playlistEntryToDelete = null;
    foreach ($feed as $playlistEntry) {
        if ($playlistEntry->getTitleValue() == $oldplaylistTitle) {
            $playlistEntryToDelete = $playlistEntry;
            break;
        }
    }
    if (!$playlistEntryToDelete instanceof Zend_Gdata_YouTube_PlaylistListEntry) {
        print 'ERROR - Could not retrieve playlist to be updated<br />' . printCacheWarning();
        return;
    }
    try {
        $response = $playlistEntryToDelete->delete();
        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 delete the playlist: ' . $e->getMessage();
        return;
    }
    print 'Playlist deleted succesfully.<br /><a href="#" onclick="' . 'ytVideoApp.retrievePlaylists();"' . '">(refresh your playlist listing)</a><br />' . printCacheWarning();
}