YoutubR

 ( Hevi | 2012. március 24., szombat - 3:38 )

-- UPDATE 2012 márc. 25 --

https://github.com/irssildur/YoutubR/wiki/Roadmap

-- /UPDATE --

-- UPDATE --

https://github.com/irssildur/YoutubR

-- /UPDATE --

Itt felmerült az igény egy Youtube desktop kliensre. Mivel úgyse nagyon van még említhető opensource projectem, ezért úgy gondoltam Flex alapokon belevágok. Fogalmam sincs, hogy van-e ilyen vagy nincs, de ezt jó alkalomnak tartom arra, hogy picit gyakoroljak egy nagyobb projectem előtt.

Flex SDK 4.5.1-el, pusztán azért, mert annak még csak Air 2.6 (2.5?) kell, ha jól emlékszem, így még Linux alatt is használható (ugye az Adobe sajnos nem hoz ki több Air-t Linux alá).

Ahogy van valami értékelhető, úgy szerintem ide fogom írogatni az infókat, meg githubra is töltögetem fel majd a forrást. Kérdéseket kommentben teszek majd fel, ha nagyon nem jutok valamivel dűlőre.

Első célkitűzésem a linkelt topic kívánalmainak megfelelni, utána jöhet a többi móka.

0. nap: Megismerkedtem a Youtube Data API for AS3-mal, sikeresen lekérdeztem a YT akkountom infóit, illetve sikeresen lejátszottam egy videót.

Márc. 24:

User videói már UI-n is listázódik, nem csak konzolban. Duplakattra lejátssza a kiválasztott videót. ErrorHandling is bekerült.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

[subscribe]

+1 subs
Kellemes, jó munkát neked!:)

+1 subs
Neat one ☺

int getRandomNumber() { return 4; }  // ← aláírás
//szabályos kockadobással választva. garantáltan véletlenszerű.  xkcd

+1 subs.

Jól hangzik.
----
Hülye pelikán

Letezik masik desktop youtube kliens, pl a Minitube, PPC-s Mac-en esely van vele meg youtube-ot nezni... Csinalj jobbat annal! :)
---
Hey! Where'd my terminal go?
DropBox tárhely itt!

Fölraktam, tetszik. Igaz, amikor a letöltés ablakot kiraktam teljes képernyőre, csak az Alt-TAB és a bezárás segített. Próbálkoztam ESC-kel, 'f' billentyűvel, de nem segített.


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Hát hogy PPC-s Macen ez hogy fog muzsikálni, azt nem tudom, de vannak ötleteim, amik talán jobbá tennék az enyémet :)

(Parti üzemmód playlisttel, így amikor egy buli eszeveszett YouTubozásba torkollik, akkor is kezelhető marad, hogy melyik szám jön éppen, esetleg MP3 támogatással is).

A party mode isteni otlet :) Szilveszterkor mi is Youtube-ra buliztunk :) S ha netalan meg elore is fog tudni cachelni a playlistbol, akkor plane, falun szar net van :)
---
Hey! Where'd my terminal go?
DropBox tárhely itt!

Cache jó ötlet :)

legyen hozzá CLI pls!!

~~~~~~~~
http://www.youtube.com/watch?v=VbUVqODL1nE

az mi? :)

köszi, így már világos :)

Ha már Flex, gondolom Adobe AIR-ben akarja futtatni, szerintem ott nem sok lehetősége van rá.

Amúgy engem audio-only player is érdekelne (gondolom Youtube API nem szeretné).

+1

Na erről fogalmam sincs, mármint, hogy Air appot hogy lehet CLI-ből indítgatni. De utánanézek.

sub

Van egy totem youtube plugin is. Régi gépemen használtam, mert csak azzal tudtam normális felbontásban nézni, a flasht nem bírta a proci.

sub

lehet amatőr kérdés, de ezt hogy kell telepíteni/használni? Archon nyomulok.

Még nincs belőle release, de ha lesz, akkor szükséged lesz a Linuxos Adobe Air-re. Duplakatt a .air file-on és telepíti is neked.

Fordítani a forrásból pedig a Flex SDK-val tudsz, vagy a Flash Builderrel (4.6 esetén külön kell letölteni hozzá a 4.5.1-es SDK-t).

Na, ma két probléma merült fel.

Egyrészt jópár videó nem játszható le olyan felkiáltással, hogy Embedded playerben user miatt nem szabad. De ehhez találtam már fixet, csak még nem megy.

Másrészt a verziószámozás kérdése. Azon gondolkoztam, hogy vajon kezdjem rögtön a 10-es verzióval és bugfixenként ugorjak egyet felfele? Egyrészt azért, hogy nehogy azt higgye a user, hogy ez valami rosszabb dolog, mint a Firefox, másrészt már a Windows is a 8-asnál tart, Linux meg a 3-asnál, meg is lehet nézni mennyivel rosszabb. Tiszta ciki lenne manapság a normális, főverziónként növekvő számozás, azt hiszem.

Szerintem 0.1-gyel kezdd. ;) Mi van ezzel az embedded player-rel? Miért nem szabad? Ami a gépemen van, az már az enyém, csak szólok! Szóval hiába is tiltana bárki bármit...


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Jó, a verziószámozás csak kis viccelődés volt:)

Embedded cucc azért gáz, mert a feltöltő le tudja tiltani, hogy böngészősön kívül máshol is megjelenjen a videó. Fogalmam sincs ez miért jó, talán a reklámok miatt? Mindenesetre a chromeless player-t elvileg böngészős playernek érzékeli a YT, tehát le kéne tudnom játszani ezeket a videókat is, de mégis 150-es hibát dob.

Szerk:

Eszerint a topic szerint nincs megoldás a problémámra.

Mivel szűrni se nagyon lehet az ilyenekre, ezért ki kéne találnom, hogy mi legyen a user tájékoztatásával. Rage Against the Machine search-n tesztelem, és nem vicces, hogy 10 találatból 5-6 nem játszható le. Na mindegy, ezt a kérdéskört későbbre hagyom, hátha addig megoldódik magától :)

Lehet, hogy nem véletlenül nincs rendes Adobe Air app YT-hoz :)

Mondjuk workaround az lehetne (ezt próbáltam volna elsőre is), ha valahogy ki tudnám hámozni a video URL-jét, ami a tényleges tartalomra mutat és azt lejátszani a beépített playerrel. Hátha úgy megadja magát. Bár ez valószínüleg meg illegális. Pfej.

Szóval marad az, hogy ilyen esetben elirányítom a YT-ra, viszont akkor meg tök fölösleges a desktop app, ha úgyis böngészőben nézi a videót :)

Szerk2:

Érdekes módon a Minitube ugyanazt a videót, amit nálam 150-es errorral eldob a YT, azt lejátssza. Vagy trükköznek valamit, vagy nemtudom.

Nem ismerem a szisztémát, de ha felépül HTTP kommunikáció, akkor a request-be nem tudsz egy böngészőt behazudni? Ha nem épül fel, akkor tárgytalan.

Nem kell behazudni semmit. Elméletileg api-n keresztül is le lehet kérdezni a video rtsp protokolos linkjét. Ha nem, akkor a video ID-ből le lehet kérni (URLRequest) a video oldalát (a mobil oldal kisebb, pl.: http://m.youtube.com/watch?v=Ie4E3Bmqb5w ), és ha ezt parse-olja, akkor ebből meg van a link, már csak le kell játszani.

Ha simán beágyazza az embedded player-t a flash-be, akkor nyilván nem fognak ezek a videók működni.

szerk.: most látom, hogy elméletileg flashből nem lejátszható az rtsp. VLC pl simán viszi.
szerk2.: ha a http-s linket ki tudod venni a sima youtube oldalról (pl.: http://youtube.com/watch?v=Ie4E3Bmqb5w ), akkor azt le tudod játszani:


package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;

public class teszt extends Sprite
{
public function teszt()
{
var customClient:Object = new Object();
customClient.onCuePoint = cuePointHandler;
customClient.onMetaData = metaDataHandler;

var myVideo:Video = new Video();
addChild(myVideo);

var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
ns.client = customClient;
myVideo.attachNetStream(ns);
ns.play("http://cache.server.prefix.youtube.com/videoplayback?sparams=...");

function cuePointHandler(infoObject:Object):void {
trace("cuePoint");
}
function metaDataHandler(infoObject:Object):void {
trace("metaData");
}
}
}
}

Vagy megnézed a Minitube forrását.


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

hmmm... Ez jo otlet volt... Igaz, nem en csinalom az appot, de erdekel a tema.

Ha ezt a linket meghivod a video id-val a vegen, akkor abban benne van a http-s stream url : pl: http://www.youtube.com/get_video_info?video_id=Ie4E3Bmqb5w
Ebbol elso korben a url_encoded_fmt_stream_map-ra lesz szukseged.

Egyebkent ne az api-ba rakott flash alapu lejatszot hasznald, mert akkor kb ugyanott vagy, mintha webrol nezned.

Már abba is hagytad a fejlesztést?

Nem, csak hétköznap van :)