2
YouTube API를 통해 로그인하여 웹 페이지에서 비공개 동영상을 볼 수 있습니까?Youtube - 소유자 계정으로 API를 통해 '로그인'했을 때 비공개 동영상보기
페이지에 인증 된 세션이 있으면 다음과 같이 개인 비디오를 재생할 수 있습니다 : http://www.youtube.com/embed/gYD0lKSIwxY?
YouTube API를 통해 로그인하여 웹 페이지에서 비공개 동영상을 볼 수 있습니까?Youtube - 소유자 계정으로 API를 통해 '로그인'했을 때 비공개 동영상보기
페이지에 인증 된 세션이 있으면 다음과 같이 개인 비디오를 재생할 수 있습니다 : http://www.youtube.com/embed/gYD0lKSIwxY?
이것은 비디오의 상태를 변경하는 방법입니다. 개인 동영상을 비공개로 변경하여 내 사이트에서 볼 수 있습니다. 나는 자바 스크립트 타이머와 아약스를 사용하여 재생을 시작한 후에 개인용으로 다시 변경합니다.
<?php
/**
* Change the status of a video on youtube
*/
if (isset($_POST['video_id'])) {
$video_id = stripslashes(strip_tags($_POST['video_id']));
$status = (isset($_POST['status'])) ? stripslashes(strip_tags($_POST['status'])) : 'private';
$sessionToken = 'your_session_token';
define('YT_DEVELOPER_KEY', 'your_developer_key');
$uploadURL = $uploadToken = null;
try {
$hCurl = curl_init();
if (!$hCurl)
throw new Exception('Failed to create cURL object');
$videoPrivate = <<<mof
<entry xmlns='http://www.w3.org/2005/Atom'
xmlns:media='http://search.yahoo.com/mrss/'
xmlns:yt='http://gdata.youtube.com/schemas/2007'
xmlns:gd='http://schemas.google.com/g/2005'
gd:fields='media:group/yt:private'>
<media:group>
<yt:private/>
</media:group>
</entry>
mof;
$videoUnlistedNotPrivate = <<<mof
<entry xmlns='http://www.w3.org/2005/Atom'
xmlns:yt='http://gdata.youtube.com/schemas/2007'
xmlns:gd='http://schemas.google.com/g/2005'
gd:fields='media:group(yt:private),yt:accessControl'>
<yt:accessControl action='comment' permission='allowed'/>
<yt:accessControl action='commentVote' permission='allowed'/>
<yt:accessControl action='embed' permission='allowed'/>
<yt:accessControl action='rate' permission='allowed'/>
<yt:accessControl action='list' permission='denied'/>
<yt:accessControl action='syndicate' permission='allowed'/>
<yt:accessControl action='videoRespond' permission='allowed'/>
</entry>
mof;
// send email for testing purposes
if ($status == 'private') {
mail('[email protected]', 'VI test', 'setting private', 'from: [email protected]');
$videoMeta = $videoPrivate;
} else {
$videoMeta = $videoUnlistedNotPrivate;
mail('[email protected]', 'VI test', 'setting unlisted', 'from: [email protected]');
}
$contentLength = strlen($videoMeta);
$respData = null;
$url = 'http://gdata.youtube.com/feeds/api/users/YourYouTubeName/uploads/' . $video_id;
$ops = array(
CURLOPT_URL => $url,
CURLOPT_POST => true,
CURLOPT_CUSTOMREQUEST => 'PATCH',
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 1,
CURLOPT_HTTPHEADER => array(
'Authorization: AuthSub token="' . $sessionToken . '"',
'GData-Version: 2',
'Content-Length: ' . $contentLength,
'Content-Type: application/xml',
'X-GData-Key: key=' . YT_DEVELOPER_KEY,
),
CURLOPT_POSTFIELDS => $videoMeta
);
curl_setopt_array($hCurl, $ops);
// fetch and parse the response to get upload URL and token
if (($respData = curl_exec($hCurl)) === false) {
throw new Exception('cURL returned an error while uploading video metadata: ' . curl_error($hCurl));
}
} catch (Exception $e) {
echo $e->getMessage();
exit;
}
}
?>
내가 '개인'과 거의 같은 선한 '비공개', 따라서 필요하지 않는 한 비디오를 설정하여이 피해 갈 수있는 비상장로 동영상을 업로드하는 방법에. – Owen
로그인해야합니다 .. . 일부 코드는 게시 할 수 있습니다. –
아래 내 대답을 참조하십시오. – Owen