protected function vimeoUpload($LogFile) { $this->VimeoProcessingStatus = 'uploading'; $this->write(); try { $this->appendLog($LogFile, "vimeoUpload() started"); if ($lib = new \Vimeo\Vimeo(Config::inst()->get('VimeoVideoFile', 'client_id'), Config::inst()->get('VimeoVideoFile', 'client_secret'), Config::inst()->get('VimeoVideoFile', 'access_token'))) { // Send a request to vimeo for uploading the new video if ($this->VimeoURI) { $uri = $lib->request($this->VimeoURI, array(), 'DELETE'); $this->VimeoURI = null; $this->VimeoLink = null; $this->VimeoID = null; $this->write(); } $uri = $lib->upload($this->getFullPath(), false); //$uri = "/videos/134840586"; $video_data = $lib->request($uri); $this->appendLog($LogFile, "Vimeo Video Data returned", print_r($video_data, true)); if ($video_data['status'] == 200) { $this->VimeoURI = $video_data['body']['uri']; $this->VimeoLink = $video_data['body']['link']; $id = explode('/', $video_data['body']['uri']); $this->VimeoID = $id[count($id) - 1]; $this->write(); $this->appendLog($LogFile, "File uploaded to Vimeo"); if ($video_data['body']['status'] == 'available') { return $this->extractUrls($video_data); } else { if ($video_data['body']['status'] == 'uploading' || $video_data['body']['status'] == 'transcoding') { $this->VimeoProcessingStatus = 'processing'; $this->write(); return false; } else { // quota_exceeded, uploading_error, transcoding_error => processingerror $this->VimeoProcessingStatus = 'processingerror'; $this->write(); return false; } } } else { $this->appendLog($LogFile, "Error in Upload", print_r($video_data, true)); $this->VimeoProcessingStatus = 'unprocessed'; $this->write(); return false; } } else { $this->appendLog($LogFile, "Missing clientID or clientSecret"); $this->VimeoProcessingStatus = 'unprocessed'; $this->write(); return false; } } catch (\Vimeo\Exceptions\VimeoRequestException $e) { $this->VimeoProcessingStatus = 'error'; $this->write(); $this->appendLog($LogFile, "VimeoRequestException:\n" . $e->getMessage()); return false; } catch (\Vimeo\Exceptions\VimeoUploadException $e) { $this->VimeoProcessingStatus = 'error'; $this->write(); $this->appendLog($LogFile, "VimeoUploadException:\n" . $e->getMessage()); return false; } }
$response = $vimeo->request('/me/watchlater/' . $video_id, array(), 'PUT'); $app->contentType('application/json'); echo '{"status": ' . json_encode($response['status']) . '}'; } }); $app->get('/upload', function () use($app, $vimeo) { $page_data = array(); $app->render('upload.php', $page_data); }); $app->post('/upload', function () use($app, $vimeo) { $vimeo->setToken('0ba6f164ff299c200d5552ae73c52063'); $storage = new \Upload\Storage\FileSystem('uploads'); $file = new \Upload\File('video', $storage); $new_filename = uniqid(); $file->setName($new_filename); $file->addValidations(array(new \Upload\Validation\Mimetype('video/mp4'), new \Upload\Validation\Size('25M'))); try { $file->upload(); } catch (\Exception $e) { $errors = $file->getErrors(); $app->flash('errors', $errors); } $new_filepath = 'uploads/' . $new_filename . '.' . $file->getExtension(); try { $vimeo->upload($new_filepath, false); } catch (\Exception $e) { $app->flash('errors', array('error uploading to Vimeo')); } $app->redirect('upload'); }); $app->run();