I know this question is old but this is a issue I was struggling with for a while.
In my situation, I had a form that needed to pass values to my upload script, and if a user wasn't signed in then the post values would get lost during the sign in process. So I came up with a way using session variables.
First towards the start of my script I set a variable to count the 'page' views -
// set the session views
if (!isset($_SESSION['views'])) {
$_SESSION['views'] = 0;
}
// every view increments
$_SESSION['views'] = $_SESSION['views'] + 1;
Then I stored session variables.
// If the user hasn't authorized the app, initiate the OAuth flow
$state = mt_rand();
$client->setState($state);
$_SESSION['state'] = $state;
$authorID = $_POST['a_id'];
$videoTitle = $_POST['ytu_title'];
// Set session variables
$vidID = $_POST['vid_id'];
$_SESSION["author"] = $_POST['a_id'];
$_SESSION["title"] = $_POST['ytu_title'];
$_SESSION["video"] = $vidID;
Then I put an if statement to check the views before uploading -
// if its on the third view or more
if ($_SESSION['views'] >= 3) {
// Create a snippet with title, description, tags and category ID
// Create an asset resource and set its snippet metadata and type.
// This example sets the video's title, description, keyword tags, and
// video category.
$snippet = new Google_Service_YouTube_VideoSnippet();
$snippet->setTitle($_SESSION["title"]);
$snippet->setDescription("Youtube Video.");
$snippet->setTags(array(
"test",
"test 2"
));
// and rest of the upload part from upload php script
// etc etc
// Create a MediaFileUpload object for resumable uploads.
$media = new Google_Http_MediaFileUpload($client, $insertRequest, 'video/*', null, true, $chunkSizeBytes);
$media->setFileSize(filesize($videoPath));
// Read the media file and upload it chunk by chunk.
$status = false;
$handle = fopen($videoPath, "rb");
while (!$status && !feof($handle)) {
$chunk = fread($handle, $chunkSizeBytes);
$status = $media->nextChunk($chunk);
}
fclose($handle);
} // closing if statement
I was finally able to fix my issue with the if statement before uploading.