YtVimeoExtractor extrae las transmisiones MP4 de videos de Vimeo, que luego se pueden usar para reproducirse a través de un MPMoviePlayerViewController
o AVPlayerView
.
Clase | Objetivo |
---|---|
YTVimeoExtractor | El YTVimeoExtractor es la clase principal y su único propósito es obtener información sobre los videos de Vimeo. Use los dos métodos principales fetchVideoWithIdentifier:withReferer:completionHandler: o fetchVideoWithVimeoURL:withReferer:completionHandler: para obtener información de video. |
YTVimeoExtractorOperation | YTVimeoExtractorOperation es una subclase de NSOperation y se utiliza para obtener y analizar información sobre los videos de Vimeo. Esta es una clase de bajo nivel. En términos generales, debe usar la clase de YTVimeoExtractor de mayor nivel. |
YTVimeoURLParser | YTVimeoURLParser se usa para validar y analizar las URL de vimeo. El objetivo principal de la clase es verificar si la clase YTVimeoExtractor puede manejar una URL dada. |
YTVimeoVideo | YTVimeoVideo representa un video de Vimeo. Use esta clase para acceder a la información sobre un video en particular. No inicialice manualmente un objeto YTVimeoVideo . El uso del método -init lanzará una excepción, en su lugar, use los dos métodos principales de la clase YTVimeoExtractor para obtener un objeto YTVimeoVideo . |
La forma de instalación preferida es a través de Cocoapods. Simplemente agregue a su podfile
pod 'YTVimeoExtractor'
y ejecutar pod install
.
Alternativamente, puede copiar la carpeta YTVimeoExtractor a su proyecto.
# import " YTVimeoExtractor.h "
Carthage es un gerente de dependencia descentralizado que construye sus dependencias y le proporciona marcos binarios.
Puede instalar Carthage con HomeBrew usando el siguiente comando:
$ brew update
$ brew install carthage
Para integrar YTVimeoExtractor en su proyecto Xcode utilizando Carthage, especifíquelo en su Cartfile
:
github "lilfaf/YTVimeoExtractor"
Ejecute carthage
para construir el marco y arrastre el YTVimeoExtractor.framework
construido en su proyecto Xcode.
Use los dos métodos de bloque en la clase YTVimeoExtractor
. Ambos métodos llamarán a un Handler de finalización que se ejecuta en el hilo principal. Si el controlador de finalización es nulo, se lanzará una excepción. El Handler de finalización tiene dos parámetros un objeto YTVimeoVideo
, si la operación se completó con éxito, y un objeto NSError
que describe la red o el error de análisis que puede haber ocurrido.
[[YTVimeoExtractor sharedExtractor ]fetchVideoWithVimeoURL: @" https://vimeo.com/channels/staffpicks/147876560 " withReferer: nil completionHandler: ^(YTVimeoVideo * _Nullable video, NSError * _Nullable error) {
if (video) {
[ self .titleTextField setStringValue: video.title];
// Will get the lowest available quality.
// NSURL *lowQualityURL = [video lowestQualityStreamURL];
// Will get the highest available quality.
NSURL *highQualityURL = [video highestQualityStreamURL ];
AVPlayer *player = [[AVPlayer alloc ]initWithURL:highQualityURL];
self. playerView . player = player;
self. playerView . videoGravity = AVLayerVideoGravityResizeAspectFill;
[ self .playerView.player play ];
[ self .playerView becomeFirstResponder ];
} else {
[[ NSAlert alertWithError: error]runModal];
}
}];
[[YTVimeoExtractor sharedExtractor ]fetchVideoWithVimeoURL: @" https://vimeo.com/channels/staffpicks/147876560 " withReferer: nil completionHandler: ^(YTVimeoVideo * _Nullable video, NSError * _Nullable error) {
if (video) {
self. titleLabel . text = [ NSString stringWithFormat: @" Video Title: %@ " ,video.title];
// Will get the lowest available quality.
// NSURL *lowQualityURL = [video lowestQualityStreamURL];
// Will get the highest available quality.
NSURL *highQualityURL = [video highestQualityStreamURL ];
MPMoviePlayerViewController *moviePlayerViewController = [[MPMoviePlayerViewController alloc ]initWithContentURL:highQualityURL];
[ self presentMoviePlayerViewControllerAnimated: moviePlayerViewController];
} else {
UIAlertView *alertView = [[UIAlertView alloc ]init];
alertView. title = error. localizedDescription ;
alertView. message = error. localizedFailureReason ;
[alertView addButtonWithTitle: @" OK " ];
alertView. delegate = self;
[alertView show ];
}
}];
Si el video de Vimeo tiene restricciones a nivel de dominio y solo se puede reproducir desde dominios particulares, es fácil agregar un referente:
[[YTVimeoExtractor sharedExtractor ]fetchVideoWithVimeoURL: @" https://vimeo.com/channels/staffpicks/147876560 " withReferer: @" http://www.mywebsite.com " completionHandler: ^(YTVimeoVideo * _Nullable video, NSError * _Nullable error) {
if (video) {
// Will get the lowest available quality.
// NSURL *lowQualityURL = [video lowestQualityStreamURL];
// Will get the highest available quality.
NSURL *highQualityURL = [video highestQualityStreamURL ];
MPMoviePlayerViewController *moviePlayerViewController = [[MPMoviePlayerViewController alloc ]initWithContentURL:highQualityURL];
[ self presentMoviePlayerViewControllerAnimated: moviePlayerViewController];
} else {
UIAlertView *alertView = [[UIAlertView alloc ]init];
alertView. title = error. localizedDescription ;
alertView. message = error. localizedFailureReason ;
[alertView addButtonWithTitle: @" OK " ];
alertView. delegate = self;
[alertView show ];
}
}];
YTVimeoExtractor tiene licencia bajo la licencia MIT. Consulte el archivo de licencia para obtener más información.