Quantcast
Channel: Active questions tagged youtube-api - Stack Overflow
Viewing all articles
Browse latest Browse all 3637

Video uploaded through YouTube Data API is becoming private

$
0
0

I have tried uploading a video to YouTube channels using by the YouTube Data API, by composer:

"require": {"google/apiclient": "^2.7","hybridauth/hybridauth": "~3.4.0","guzzlehttp/guzzle": "^7.0"    }

The video is uploaded successfully, but YouTube marks every video uploaded into it as private. Does anybody know how to fix this scenario?

    public function upload_video_on_youtube($id, $arr_data)    {        $result_data = array();        $channel_id = $id;        $uploaded = false;        $stopper = 0;        while ($uploaded == false && $stopper == 0) {            $arr_data['summary'] = $this->getrandomstring(10);            $arr_data['title'] = $this->getrandomstring(10);            $client = new Google_Client();            $arr_token = $this->getAccessToken($channel_id);            if ($arr_token['error'] == false) {                $res = array();                $accessToken = array('access_token' => $arr_token['access_token']                );                $client->setAccessToken($accessToken);                $service = new Google_Service_YouTube($client);                $video = new Google_Service_YouTube_Video();                $videoSnippet = new Google_Service_YouTube_VideoSnippet();                $videoSnippet->setDescription($arr_data['summary']);                $videoSnippet->setTitle($arr_data['title']);                $video->setSnippet($videoSnippet);                $videoStatus = new Google_Service_YouTube_VideoStatus();                $videoStatus->setPrivacyStatus('unlisted');                $video->setStatus($videoStatus);                try {                    $response = $service->videos->insert('snippet,status',                        $video,                        array('data' => file_get_contents($arr_data['video_path']),'mimeType' => 'video/*','uploadType' => 'multipart'                        )                    );                    if (isset($response->id)) {                        $video_id = $response->id;                        $res['error'] = false;                        $res['response'] = $video_id;                        array_push($result_data, $res);                        $uploaded = true;                        return $result_data;                    }                } catch (Exception $e) {                    if (401 == $e->getCode()) {                        // echo ($arr_token['email'] . " Youtube  Access token expired");                        $refresh_token = $this->get_refersh_token($channel_id);                        $client = new GuzzleHttp\Client(['base_uri' => 'https://accounts.google.com']);                        $response = $client->request('POST', '/o/oauth2/token', ['form_params' => ["grant_type" => "refresh_token","refresh_token" => $refresh_token,"client_id" => $arr_token['client_id'],"client_secret" => $arr_token['client_secret'],                            ],                        ]);                        $data = json_decode($response->getBody());                        $data->refresh_token = $refresh_token;                        $this->update_access_token($channel_id, json_encode($data));                        $uploaded = false;                    } elseif (403 == $e->getCode()) {                        // echo ($arr_token['email'] . '  Youtube channel quota exceeded');                        $channel_id = $channel_id + 1;                        $uploaded = false;                    }                }            } else if ($arr_token['error'] == true) {                $res['error'] = true;                $res['response'] = "Your Daily Upload Quota is Exceeded";                array_push($result_data, $res);                $stopper = 1;                return $result_data;            }        }    }

Viewing all articles
Browse latest Browse all 3637

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>