RNHC Center.
Buna sunt Genius + +, aş dori să ştiu dacă vă puteţi înregistra pe acest site
RNHC Center.
Buna sunt Genius + +, aş dori să ştiu dacă vă puteţi înregistra pe acest site
RNHC Center.
Doriți să reacționați la acest mesaj? Creați un cont în câteva clickuri sau conectați-vă pentru a continua.
RNHC Center.


 
AcasaAcasa  GalerieGalerie  Ultimele imaginiUltimele imagini  CăutareCăutare  ÎnregistrareÎnregistrare  Conectare  

 

 PHP Youtube upload

In jos 
AutorMesaj
Genius++
Administrator
Administrator
Genius++


Mesaje : 527
Data de inscriere : 26/08/2011
Varsta : 27
Localizare : Bacau

PHP Youtube upload  Empty
MesajSubiect: PHP Youtube upload    PHP Youtube upload  EmptyLun Noi 21, 2011 10:27 am

hai sa va pun un scriptulet facut acum cateva zile care urca filmultete pe youtube folosind api-ul lor.
iti trebuie:
-cont youtube+gmail si un nr de telefon pt confirmare(mobil de la prieteni, cu voceonline.romtelecom.ro nu merge, pt cei care pun filme cu zdrente si isi iau disable la cont dupa ce toti ratatii isi fac laba la film apoi dau report)
-api key, se gaseste pe code.google.com
-un harb de pc conectat la net pe care ruleaza php
-un pachet de tigari plus bere
-zend framework de aici [Trebuie sa fiti inscris si conectat pentru a vedea acest link]
un folder la care ii setezi permisiuni sa poti scrie in el
-daca nu intelegi ceva ma intrebi, dar cauta pe php.net mai intai ca sigur gasesti raspunsul


<?
if(isset($_GET['getVideo']))//getVideo vine din action-ul formului cu care trimiti datele primului video, vezi posturile la linia 39
{
require_once 'Zend/Loader.php'; //nu merge fara el
require_once 'conectare_baza_date.php';//daca vrei sa contorizezi ce ai bagat si cum
Zend_Loader::loadClass('Zend_Gdata_YouTube');
$yt = new Zend_Gdata_YouTube();
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
$authenticationURL= 'https://www.google.com/accounts/ClientLogin';
$httpClient = Zend_Gdata_ClientLogin::getHttpClient(
$username = 'salam_florin2009_skumpyk_boss@gmail.com',//mailul cu care ti-ai facut api key
$password = 'bossdeboss',//parola
$service = 'youtube',//ramane youtube
$client = null,
$source = 'CurveZdrente', //nume aplicatie
$loginToken = null,
$loginCaptcha = null,
$authenticationURL);
$developerKey = 'apik_key';//api key generat pe code.google
$applicationId = 'CurveZdrente';//aplicatie
$clientId = 'CurveZdrente';//aplicatie
$yt = new Zend_Gdata_YouTube($httpClient, $applicationId, $clientId, $developerKey);
$yt = new Zend_Gdata_YouTube($httpClient);
$yt = new Zend_Gdata_YouTube($httpClient);
if(!isset($_GET['numar']))//daca nu avem inseamna ca a venit din formul trimis cu post
{
$numar = 0;
}
else//e venit dupa meta refresh
{
$numar = $_GET['numar'];
}
if(!isset($_GET['dinCache']))//venit din formul trimis cu post
{
@unlink('video/cacheNume.txt');//daca exista il stergem ca nu avem nevoie, grija sa avem folderul video chmodat
@unlink('video/cacheDetalii.txt');//aceeasi treaba
file_put_contents('video/cacheNume.txt', $_POST['nume']);//scrie nume videourilor trimise cu post in fisier, eu am bagat o lista separate prin |
file_put_contents('video/cacheDetalii.txt', $_POST['cate_cuvinte'].'|'.$_POST['Title'].'|'.$_POST['Description']);//cate cuvinte e parametrul unei functii trase din conectare_baza_date.php care ia cate_cuvinte bagi in form la random(cu shuffle($array_cuvinte)Wink dintr-un aray -- vezi mai jos cum merge
$dataNume = $_POST['nume'];//numele clipurilor separate prin |
$dataCateCuvinte = $_POST['cate_cuvinte'];//vezi 2 linii mai sus
$dataTitle = $_POST['Title'];//titlu video
$dataDescription = $_POST['Description'];//descriere video baga si %nume% unde vrei sa iti inlocuiasca cu nume clip
}
else//e venit dupa meta refresh
{
$cacheNume = file_get_contents('video/cacheNume.txt');//citeste ce nume avem in cache
$cacheDetalii = file_get_contents('video/cacheDetalii.txt');//detalii, adica nr_cuvinte, titlu, descriere separate prin |
$cacheSpargereDetalii = explode('|', $cacheDetalii);//fiecare detaliu e separat prin | deci le spargem
$dataCateCuvinte = $cacheSpargereDetalii[0];//numarul de cuvinte
$dataTitle = $cacheSpargereDetalii[1];//titlul videoului, care contine si %nume% pe care il schimbam cu str_replace mai jos in numele curent al videoului
$dataDescription = $cacheSpargereDetalii[2];//descrierea videoului, inlocuim %nume% cu numele curent
}
$nume = explode('|', $cacheNume);//spargem linia aia lunga cu numele separate prin | intr-un array
array_pop($nume);//ramane un | la sfarsit, adica un video fara nume, cu array_pop iese
$maxim = count($nume);//numaram cate clipuri avem de bagat
if(isset($_GET['numar']) && $_GET['numar'] > $maxim)//daca dupa meta refresh avem un nr mai mare inseamna ca s-a terminat de urcat pe youtubr
{
print 'Toate videourile au fost trase<br />Total videouri: '.$maxim;
die();
}
$bune = '';//vezi linia 69
foreach($nume as $xnume)
{
//eu le iau remote apoi le scriu in folderul video, videourile sunt de forma [Trebuie sa fiti inscris si conectat pentru a vedea acest link]
for($j = 1;$j <= 1;$j++)//cate video sa ia, video/'.$xnume.'1.flv, video/'.$xnume.'2.flv etc
{
if(strlen(@file_get_contents('http://sursa/video/'.$xnume.$j.'.flv', null, null, null, 1024)) > 1000)//verifica daca exista
{
$bune .= 'http://sursa/video/'.$xnume.$j.'.flv|';//care exista intra in stringul $bune separate prin |
}
}
}
$toate = explode('|', $bune);//video bune sparte in array prin |
array_pop($toate);//ultimul e gol, scoatem
$v = 1; //numar video
print 'Numar: '.$numar.'<br />Nume: '.$nume[$numar].'<br />';//video curent
foreach($toate as $ok)//pt fiecare video bun uploadeaza
{
print 'Sursa: ';
print $ok;
print '<br />';
$continutulRemote = file_get_contents($ok);//ia videoul in variabila
$continutulServer = file_put_contents('video/'.$nume[$numar].'-'.$v.'.flv', $continutulRemote);//il scrie la noi in folderul video
unset($continutulRemote);//mai eliberam memorie ca am pentium 1
$title = str_replace('%nume%', $nume[$numar], $dataTitle).' '.get_cuvinte($dataCateCuvinte, " ");//la linia 38 scrie despre functia ge_cuvinte,ia cate cuvinte ii dai separate prin al doilea parametru
$description = str_replace('%nume%', $nume[$numar], $dataDescription);//linie 50
$tags = get_cuvinte(10, ',');//astea sunt taguri pt video, ia 10 cuvinte la random separate prin ,
/**uploadare pe youtube**/
$myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();
$filesource = $yt->newMediaFileSource('video/'.$nume[$numar].'-'.$v.'.flv');//sursa noastra de video
$filesource->setContentType('video/x-flv');//content type, eu am flv-uri
$filesource->setSlug('video/'.$nume[$numar].'-'.$v.'.flv');//sursa
$myVideoEntry->setMediaSource($filesource);//sursa
$myVideoEntry->setVideoTitle($title);//titlu
$myVideoEntry->setVideoDescription($description);
$myVideoEntry->setVideoCategory('People');//categorie, People e People & Blogs, sunt intr-un xml categoriile corect, vezi pe api
$myVideoEntry->setVideoTags($tags);//ii da tagurile
$uploadUrl = 'http://uploads.gdata.youtube.com/feeds/api/users/default/uploads';
try {
$newEntry = $yt->insertEntry($myVideoEntry, $uploadUrl, 'Zend_Gdata_YouTube_VideoEntry');
} catch (Zend_Gdata_App_HttpException $httpException) {
echo $httpException->getRawResponseBody();
} catch (Zend_Gdata_App_Exception $e) {
echo $e->getMessage();
}
/**sterge video ca ne-am facut treaba**/
unlink('video/'.$nume[$numar].'-'.$v.'.flv');
/**baga in baza de date ce a uploadat**/
//daca vrei sa le contorizezi, dai un insert
$v ++;// trecem la urmatorul video cu acelasi $nume[$numar];
/**sleep un pic sa se calmeze**/
sleep(1);
}
/**a terminat cu videoul, redirect la urmatorul**/
print 'Redirect in 10 de secunde...<meta http-equiv="refresh" content="10;url=?getVideo&dinCache&numar='.($numar + 1).'">';
}
?>














poza: [Trebuie sa fiti inscris si conectat pentru a vedea acest link]
Sus In jos
https://rnhc.forumgratuit.ro/
 
PHP Youtube upload
Sus 
Pagina 1 din 1

Permisiunile acestui forum:Nu puteti raspunde la subiectele acestui forum
RNHC Center. :: IT :: Informati/Tutoriale-
Mergi direct la: