Question

J'utilise CodeIgniter + bibliothèques Zend. Je veux permettre aux utilisateurs de télécharger des vidéos sur mon site, que je vais ensuite télécharger sur ma chaîne YouTube. Ceci est ma première exposition à l'API YouTube. point que quelqu'un peut me dans la bonne direction?

Ai-je raison à la recherche à ceci: http: // Code .google.com / apis / youtube / 2.0 / developers_guide_protocol.html # Direct_uploading ? Quelqu'un at-il un extrait de code qui montre comment le téléchargement est fait via PHP?

Était-ce utile?

La solution

Je ne recommande pas d'utiliser Zend avec CI en raison de sa taille et de la complexité. J'ai développé une bibliothèque spécialement pour CodeIgniter https://github.com/jimdoescode/CodeIgniter-YouTube- API-Library

La bibliothèque offre plusieurs options différentes pour le téléchargement sur YouTube. Vous pouvez faire un téléchargement direct lorsque vous téléchargez une vidéo stockée sur votre serveur sur YouTube. Il y a aussi une possibilité d'utiliser un formulaire pour télécharger une vidéo du client sur YouTube. Check it out et laissez-moi savoir si vous avez des questions.

Autres conseils

Essayez ce son travail

class Addvideo extends Controller {



    function Addvideo()

    {

        parent::Controller();


        $this->load->library("zend");
        $this->zend->load("Zend/Gdata/AuthSub");
        $this->zend->load("Zend/Gdata/ClientLogin");
        $authenticationURL= 'https://www.google.com/youtube/accounts/ClientLogin';

        /************Authentication**************/

        $this->zend->load("Zend/Gdata/YouTube");
        $this->zend->load("Zend/Gdata/HttpClient");

        $this->zend->load("Zend/Gdata/App/MediaFileSource");
        $this->zend->load("Zend/Gdata/App/HttpException");
        $this->zend->load("Zend/Uri/Http");


        $youtube = new Zend_Gdata_YouTube();
        $myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();
        $Gdata_AuthSub=new Zend_Gdata_AuthSub();

        $this->load->helper("text");
    }

        function index(){
            $data['result']='videos';
            $this->load->view('videos/newform', $data); 

        }

    function indexed(){

        $title = 'GruppoDSE Video';
        $description = 'Description';

        $youtube = new Zend_Gdata_YouTube();    
        $authenticationURL= 'https://www.google.com/youtube/accounts/ClientLogin';
        $httpClient = Zend_Gdata_ClientLogin::getHttpClient(
                $username = $this->config->item('username'),
                $password = $this->config->item('password'),
                $service = 'youtube',
                $client = null,
                $source = 'Arts Connector', // a short string identifying your application
                $loginToken = null,
                $loginCaptcha = null,
                $authenticationURL); 

        $developerKey = $this->config->item('developer_key');
        $applicationId = 'Arts Connector';
        $clientId = 'My video upload client - v1';
        $yt = new Zend_Gdata_YouTube($httpClient, $applicationId, $clientId, $developerKey);

        // create a new VideoEntry object
        $myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();

        $myVideoEntry->setVideoTitle($title);
        $myVideoEntry->setVideoDescription($description);
        // The category must be a valid YouTube category!
        $myVideoEntry->setVideoCategory('Autos');

        // Set keywords. Please note that this must be a comma-separated string
        // and that individual keywords cannot contain whitespace
        $myVideoEntry->SetVideoTags('cars, funny');

        $tokenHandlerUrl = 'http://gdata.youtube.com/action/GetUploadToken';
        $tokenArray = $yt->getFormUploadToken($myVideoEntry, $tokenHandlerUrl);
        $data['tokenValue'] = $tokenArray['token'];
        $data['postUrl'] = $tokenArray['url']; 


            // place to redirect user after upload
            $data['nextUrl'] = 'http://www.avantajsoftwares.com/gruppo/uploadVideo';
            $res="Il file video aggiungere con successo, il risultato atteso verrà visualizzato dopo alcune volte";
            $this->session->set_userdata('greenFlag',$res);
            // build the form

            $this->load->view('videos/form', $data);

        }

    function AddVideoAjax(){

             $title=$_POST['title'];
             $description=$_POST['description'];

        $youtube = new Zend_Gdata_YouTube();    
        $authenticationURL= 'https://www.google.com/youtube/accounts/ClientLogin';
        $httpClient = Zend_Gdata_ClientLogin::getHttpClient(
                $username = $this->config->item('username'),
                $password = $this->config->item('password'),
                $service = 'youtube',
                $client = null,
                $source = 'Arts Connector', // a short string identifying your application
                $loginToken = null,
                $loginCaptcha = null,
                $authenticationURL); 

        $developerKey = $this->config->item('developer_key');
        $applicationId = 'Arts Connector';
        $clientId = 'My video upload client - v1';
        try {
        $yt = new Zend_Gdata_YouTube($httpClient, $applicationId, $clientId, $developerKey);

        // create a new VideoEntry object
        $myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();

        $myVideoEntry->setVideoTitle($title);
        $myVideoEntry->setVideoDescription($description);
        // The category must be a valid YouTube category!
        $myVideoEntry->setVideoCategory('Education');

        // Set keywords. Please note that this must be a comma-separated string
        // and that individual keywords cannot contain whitespace
        $myVideoEntry->SetVideoTags('Seminar, Events');

        $tokenHandlerUrl = 'http://gdata.youtube.com/action/GetUploadToken';
        $tokenArray = $yt->getFormUploadToken($myVideoEntry, $tokenHandlerUrl);
        $tokenValue = $tokenArray['token'];
        $postUrl = $tokenArray['url']; 


            // place to redirect user after upload
            $nextUrl = 'http://www.avantajsoftwares.com/gruppo/Addvideo';
            $res="Il file video aggiungere con successo, il risultato atteso verrà visualizzato dopo alcune volte";
            $this->session->set_userdata('greenFlag',$res);
            // build the form

            echo  $form = '<form action="'. $postUrl .'?nexturl='. $nextUrl .
                    '" method="post" enctype="multipart/form-data" onsubmit="return valid()">'. 
                    '<div style="float:left;"><input name="file" type="file" id="file"/></div><div class="preloader"></div>'. 
                    '<input name="token" type="hidden" value="'.  $tokenValue .'"/>'.
                    '<div style="clear:both"></div>'.
                    '<div class="login-footer" id="prog_bar style="cursor:pointer"><input value="Carica video" type="submit" id="validate" class="button" onclick="progress_bar()"/></div>'. 
                    '</form>';



            } catch (Zend_Gdata_App_Exception $e) {

                echo $return="<div class='login-footer' style='width:130px;'><a style='height:16px; padding-top:7px;' class='button' href=".site_url()."Addvideo>Riprova di nuovo</a></div>";
            }
            // Assuming that $videoEntry is the object that was returned during the upload
             //$state = $myVideoEntry->getVideoState();




        }

    function getAuthSubRequestUrl()
        {
            $gdata_AuthSub = new Zend_Gdata_AuthSub();
            $next = 'http://www.avantajsoftwares.com/gruppo/videos';
            $scope = 'http://gdata.youtube.com';
            $secure = false;
            $session = true;
            return $data=$gdata_AuthSub->getAuthSubTokenUri($next, $scope, $secure, $session);
        }

    function getAuthSubHttpClient()
        {
            echo $_SESSION['sessionToken'];

            if (!isset($_SESSION['sessionToken']) && !isset($_GET['token']) ){
                echo '<a href="' . $this->getAuthSubRequestUrl() . '">Login!</a>';
                return;
            } else if (!isset($_SESSION['sessionToken']) && isset($_GET['token'])) {
              $_SESSION['sessionToken'] = Zend_Gdata_AuthSub::getAuthSubSessionToken($_GET['token']);
            }

            $httpClient = Zend_Gdata_AuthSub::getHttpClient($_SESSION['sessionToken']);
            return $httpClient;
        }


    /*************************** Class end ***********************************/
}

Les documents ont ceci, ainsi que d'autres méthodes, couvertes pour Zend Gdata: Envoi de vidéos

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top