Retrieving progress of Direct Upload using youtube gdata API

前端 未结 1 770
刺人心
刺人心 2021-01-20 20:54

I\'m following along with the documentation about using the gData Youtube API for doing direct uploads with PHP. I can successfully upload videos, so thats all well and goo

相关标签:
1条回答
  • 2021-01-20 21:29

    Demo url:--

    http://jquery.malsup.com/form/progress.html

    You can download jquery file below url and add in html tag

    http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js

    http://malsup.github.com/jquery.form.js

    Try this:--

    output video:-

    enter image description here

    This is my video.php file

    <!doctype html>
    <head>
    <title>File Upload Progress Demo #1</title>
    <style>
    body { padding: 30px }
    form { display: block; margin: 20px auto; background: #eee; border-radius: 10px; padding: 15px }
    
    .progress { position:relative; width:400px; border: 1px solid #ffffd; padding: 1px; border-radius: 3px; }
    .bar { background-color: #B4F5B4; width:0%; height:20px; border-radius: 3px; }
    .percent { position:absolute; display:inline-block; top:3px; left:48%; }
    </style>
    </head>
    <body>
        <h1>File Upload Progress Demo #1</h1>
        <code>&lt;input type="file" name="myfile"></code>
            <form action="video_upload.php" method="post" enctype="multipart/form-data">
            <input type="file" name="uploadedfile"><br>
            <input type="submit" value="Upload File to Server">
        </form>
    
        <div class="progress">
            <div class="bar"></div >
            <div class="percent">0%</div >
        </div>
    
        <div id="status"></div>
    
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script>
    <script src="http://malsup.github.com/jquery.form.js"></script>
    <script>
    (function() {
    
    var bar = $('.bar');
    var percent = $('.percent');
    var status = $('#status');
    
    $('form').ajaxForm({
        beforeSend: function() {
            status.empty();
            var percentVal = '0%';
            bar.width(percentVal)
            percent.html(percentVal);
        },
        uploadProgress: function(event, position, total, percentComplete) {
            var percentVal = percentComplete + '%';
            bar.width(percentVal)
            percent.html(percentVal);
        },
        complete: function(xhr) {
            bar.width("100%");
            percent.html("100%");
            status.html(xhr.responseText);
        }
    }); 
    
    })();       
    </script>
    
    </body>
    </html>
    

    this is my video_upload.php file

    <?php
    // video_upload.php
    
    
    require_once 'Zend/Loader.php'; // the Zend dir must be in your include_path
    Zend_Loader::loadClass('Zend_Gdata_YouTube');
    $yt = new Zend_Gdata_YouTube();
    
    // Define the authentication that will be used
    Zend_Loader::loadClass('Zend_Gdata_ClientLogin'); 
    
    // Authenticate
    $authenticationURL= 'https://www.google.com/accounts/ClientLogin';
    $httpClient = 
      Zend_Gdata_ClientLogin::getHttpClient(
                  $username = "USERNAME",
                  $password = "PASSWORD",
                  $service = 'youtube',
                  $client = null,
                  $source = 'HTML SOURCE CODE SNIPPET',
                  $loginToken = null,
                  $loginCaptcha = null,
                  $authenticationURL);
    
    $applicationId = 'YOUR APPLICATION ID';
    $clientId = 'Upload videos to youtube using the youtube API';
    $developerKey = 'YOUR DEVELOPER KEY';
    $yt = new Zend_Gdata_YouTube($httpClient, $applicationId, $clientId, $developerKey);
    
    
    
    // create a new VideoEntry object
    $myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();
    
    $myVideoEntry->setVideoTitle($videoTitle);
    $myVideoEntry->setVideoDescription($VideoDescription);
    // The category must be a valid YouTube category!
    $myVideoEntry->setVideoCategory($VideoCategory);
    
    // Set keywords. Please note that this must be a comma-separated string
    // and that individual keywords cannot contain whitespace
    $myVideoEntry->SetVideoTags($VideoTags);
    
    $tokenHandlerUrl = 'http://gdata.youtube.com/action/GetUploadToken';
    $tokenArray = $yt->getFormUploadToken($myVideoEntry, $tokenHandlerUrl);
    $tokenValue = $tokenArray['token'];
    $postUrl = $tokenArray['url'];
    
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $postUrl."?nexturl=http://YOUR_WEBPAGE.com/");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLINFO_HEADER_OUT, true);
    curl_setopt($ch, CURLOPT_POST, true);
    // same as <input type="file" name="file">
    $post = array("file"=>"@".$VideoFile['tmp_name'], "token"=>$tokenValue);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 
    $response = curl_exec($ch);
    $info = curl_getinfo($ch);
    
    echo $info;
    
    ?>
    
    0 讨论(0)
提交回复
热议问题