2012-03-22 20 views
0

ウェブサイトの訪問者が自分のYouTubeチャンネルに自分のワードプレスのウェブサイトのフロントエンドから直接ビデオをアップロードすることを許可します。ワードプレスを使用してYouTubeにビデオをアップロードする

私はPHP APIを使用しようとしましたが、私はまだPHPコーディングの初心者であるため、このタスクを達成できませんでした。しかし、私はいくつかのステップでjQueryを使ってタスクを実行できると聞いてきましたが、私はYouTube APIのドキュメントをチェックしましたが、それを行う方法を理解できませんでした。

このanswer on a questionはので、私はのようなものを使用することができます意味が、私はjQueryのPOSTを使用してYouTubeに動画をアップロードできることを示しています

jQuery.ajax({ 
     type: "POST", 
     url:"http://uploads.gdata.youtube.com/feeds/api/users/<youtube_username>/uploads", 
     data:'URL-TO-VIDEO-FILE', 
     success: .... 

おかげ

答えて

0

アイブ氏が使用して私のワードプレスのサイトのためにこれをやっlib私はウェブ上で見つけた(http://ix.it/REJ6EN)。少々グーグルで、YouTubeに直接動画を送ることができます。

<?php 
    $youtube_email = ""; // Change this to your youtube sign in email. 
    $youtube_password = ""; // Change this to your youtube sign in password. 
    // Developer key: Get your key here: http://code.google.com/apis/youtube/dashboard/. 
    $key = ""; 

    $source = 'BarBeachTV'; // A short string that identifies your application for logging purposes. 
    $postdata = "Email=".$youtube_email."&Passwd=".$youtube_password."&service=youtube&source=" . $source; 
    $curl = curl_init("https://www.google.com/youtube/accounts/ClientLogin"); 
    curl_setopt($curl, CURLOPT_HEADER, "Content-Type:application/x-www-form-urlencoded"); 
    curl_setopt($curl, CURLOPT_POST, 1); 
    curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); 
    $response = curl_exec($curl); 
    curl_close($curl); 

    list($auth, $youtubeuser) = explode("\n", $response); 
    list($authlabel, $authvalue) = array_map("trim", explode("=", $auth)); 
    list($youtubeuserlabel, $youtubeuservalue) = array_map("trim", explode("=", $youtubeuser)); 

    $youtube_video_title = $video_title; // This is the uploading video title. 
    $youtube_video_description = $video_description; // This is the uploading video description. 
    $youtube_video_keywords = 'BarBeachTV'; // This is the uploading video keywords. 
    $youtube_video_category = 'Entertainment'; // This is the uploading video category. There are only certain categories that are accepted. See below 
    /* 
    * Accepted Categories: 
    * 
     Film 
     Autos 
     Music 
     Animals 
     Sports 
     Travel 
     Shortmov 
     Games 
     Videblog 
     People 
     Comedy 
     Entertainment 
     News 
     Howto 
     Education 
     Tech 
     Nonprofit 
     Movies 
     Movies_anime_action 
     Movies_action_adventure 
     Movies_classics 
     Movies_comedy 
     Movies_documentary 
     Moves_drama 
     Movies_family 
     Movies_foreign 
     Movies_horror 
     Movies_sci_fi_fantasy 
     Movies_thriller 
     Movies_shorts 
     Shows 
     Trailers 
    */ 

    $data = '<?xml version="1.0"?> 
       <entry xmlns="http://www.w3.org/2005/Atom" 
        xmlns:media="http://search.yahoo.com/mrss/" 
        xmlns:yt="http://gdata.youtube.com/schemas/2007"> 
        <media:group> 
        <media:title type="plain">' . stripslashes($youtube_video_title) . '</media:title> 
        <media:description type="plain">' . stripslashes($youtube_video_description) . '</media:description> 
        <media:category 
         scheme="http://gdata.youtube.com/schemas/2007/categories.cat">'.$youtube_video_category.'</media:category> 
        <media:keywords>'.$youtube_video_keywords.'</media:keywords> 
        </media:group> 
       </entry>'; 

    $headers = array("Authorization: GoogleLogin auth=".$authvalue, 
       "GData-Version: 2", 
       "X-GData-Key: key=".$key, 
       "Content-length: ".strlen($data), 
       "Content-Type: application/atom+xml; charset=UTF-8"); 

$curl = curl_init("http://gdata.youtube.com/action/GetUploadToken"); 
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_TIMEOUT, 10); 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($curl, CURLOPT_POST, 1); 
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); 
curl_setopt($curl, CURLOPT_REFERER, true); 
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($curl, CURLOPT_HEADER, 0); 

$response = simplexml_load_string(curl_exec($curl)); 
curl_close($curl); 
?> 
関連する問題