Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/myflashlab/AS3-youtube-parser-video-link
This AS3 library can parse standard youtube links like https://www.youtube.com/watch?v=QowwaefoCec and will extract different elements of that video like available direct video addresses and video thumbnail. it works with public unrestricted video files only.
https://github.com/myflashlab/AS3-youtube-parser-video-link
Last synced: about 2 months ago
JSON representation
This AS3 library can parse standard youtube links like https://www.youtube.com/watch?v=QowwaefoCec and will extract different elements of that video like available direct video addresses and video thumbnail. it works with public unrestricted video files only.
- Host: GitHub
- URL: https://github.com/myflashlab/AS3-youtube-parser-video-link
- Owner: myflashlab
- Created: 2015-02-01T13:16:12.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2020-03-22T10:20:29.000Z (almost 5 years ago)
- Last Synced: 2024-08-03T05:02:52.158Z (5 months ago)
- Language: ActionScript
- Size: 82 KB
- Stars: 20
- Watchers: 10
- Forks: 8
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-actionscript-sorted - AS3-youtube-parser - This AS3 library can parse standard youtube links like https://www.youtube.com/watch?v=QowwaefoCec and will extract different elements of that video like available direct video addresses and video thumbnail. it works with public unrestricted video files only. (File Formats / Misc Formats)
README
## AS3-youtube-parser-video-link ##
This AS3 library can parse standard youtube links like **https://www.youtube.com/watch?v=QowwaefoCec**
and will extract different elements of that video like available direct video addresses, video title
and video thumbnail. It works with public unrestricted video files only.I must add that I wrote this library after being inspired by https://github.com/jeckman/YouTube-Downloader
It works on Android/iOS/Windows/Mac AIR projects.
USAGE:
```actionscript
import com.doitflash.remote.youtube.YouTubeLinkParser;
import com.doitflash.remote.youtube.YouTubeLinkParserEvent;
import com.doitflash.remote.youtube.VideoType;
import com.doitflash.remote.youtube.VideoQuality;var _ytParser:YouTubeLinkParser = new YouTubeLinkParser();
_ytParser.addEventListener(YouTubeLinkParserEvent.COMPLETE, onComplete);
_ytParser.addEventListener(YouTubeLinkParserEvent.ERROR, onError);
_ytParser.parse("https://www.youtube.com/watch?v=QowwaefoCec");function onError(e:YouTubeLinkParserEvent):void
{
// removing listeners just for clean cosing reasons!
_ytParser.removeEventListener(YouTubeLinkParserEvent.COMPLETE, onComplete);
_ytParser.removeEventListener(YouTubeLinkParserEvent.ERROR, onError);
trace("Error: " + e.param.msg);
}function onComplete(e:YouTubeLinkParserEvent):void
{
// removing listeners just for clean coding reasons!
_ytParser.removeEventListener(YouTubeLinkParserEvent.COMPLETE, onComplete);
_ytParser.removeEventListener(YouTubeLinkParserEvent.ERROR, onError);
trace("youTube parse completed...");
trace("video thumb: " + _ytParser.thumb);
trace("video title: " + _ytParser.title);
trace("possible found videos: " + _ytParser.videoFormats.length);
trace("you can only access youtube public videos... no age restriction for example!");
trace("some video formats may be null so you should check their availablily...");
trace("to make your job easier, I built another method called getHeaders() which will load video headers for you! you can know the video size using these header information :) ");
// let's find the VideoType.VIDEO_MP4 video format in VideoQuality.MEDIUM for this video
// NOTICE: you should find your own way of selecting a video format! as different videos may not have all formats or qualities available!
var chosenVideo:String;
for (var i:int = 0; i < _ytParser.videoFormats.length; i++)
{
var currVideoData:Object = _ytParser.videoFormats[i];
if (currVideoData.mimeType.indexOf(VideoType.VIDEO_MP4) > -1 && currVideoData.quality == VideoQuality.MEDIUM)
{
chosenVideo = currVideoData.url;
break;
}
}_ytParser.addEventListener(YouTubeLinkParserEvent.VIDEO_HEADER_RECEIVED, onHeadersReceived);
_ytParser.addEventListener(YouTubeLinkParserEvent.VIDEO_HEADER_ERROR, onHeadersError);
_ytParser.getHeaders(chosenVideo);
}
function onHeadersError(e:YouTubeLinkParserEvent):void
{
_ytParser.removeEventListener(YouTubeLinkParserEvent.VIDEO_HEADER_RECEIVED, onHeadersReceived);
_ytParser.removeEventListener(YouTubeLinkParserEvent.VIDEO_HEADER_ERROR, onHeadersError);
trace("Error: " + e.param.msg)
}
function onHeadersReceived(event:YouTubeLinkParserEvent):void
{
_ytParser.removeEventListener(YouTubeLinkParserEvent.VIDEO_HEADER_RECEIVED, onHeadersReceived);
_ytParser.removeEventListener(YouTubeLinkParserEvent.VIDEO_HEADER_ERROR, onHeadersError);
var lng:int = event.param.headers.length;
var i:int;
var currHeader:*;
for (i = 0; i < lng; i++ )
{
currHeader = event.param.headers[i];
trace(currHeader.name + " = " + currHeader.value);
}
// ok, we are happy! now let's download this video, like any other file you would download:
download(event.param.url);
}
```