Domanda

sto usando le librerie CodeIgniter + Zend. Voglio lasciare i video agli utenti di caricare al mio sito, che io poi caricare al mio canale YouTube. Questa è la mia prima esposizione al API di YouTube. Qualcuno può punto me nella giusta direzione?

Ho ragione ad essere guardando questo: http: // codice .google.com / apis / youtube / 2.0 / developers_guide_protocol.html # Direct_uploading ? Qualcuno ha un frammento di codice che mostra come il caricamento avviene tramite PHP?

È stato utile?

Soluzione

Non consiglio utilizzando Zend con CI causa della sua dimensione e complessità. Ho sviluppato una libreria appositamente per CodeIgniter https://github.com/jimdoescode/CodeIgniter-YouTube- API-Library

La libreria fornisce diverse opzioni da caricare su YouTube. Si può fare un upload diretto in cui si carica un video memorizzati sul server di YouTube. C'è anche la possibilità di utilizzare un modulo per caricare un video dal client su YouTube. Check it out e fatemi sapere se avete domande.

Altri suggerimenti

Prova questo suo funzionamento

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 ***********************************/
}

La documentazione hanno questa, così come altri metodi, coperti per Zend Gdata: Caricamento Video

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top