YtvimeoExtractor extrait les flux MP4 de vidéos Vimeo, qui peuvent ensuite être utilisés pour jouer via un MPMoviePlayerViewController
ou AVPlayerView
.
Classe | But |
---|---|
YTVimeoExtractor | Le YTVimeoExtractor est la classe principale et son seul but est de récupérer des informations sur les vidéos Vimeo. Utilisez les deux méthodes principales fetchVideoWithIdentifier:withReferer:completionHandler: ou fetchVideoWithVimeoURL:withReferer:completionHandler: Pour obtenir des informations vidéo. |
YTVimeoExtractorOperation | YTVimeoExtractorOperation est une sous-classe de NSOperation et est utilisé pour récupérer et analyser les informations sur les vidéos Vimeo. C'est une classe de bas niveau. D'une manière générale, vous devez utiliser la classe YTVimeoExtractor de niveau supérieur. |
YTVimeoURLParser | YTVimeoURLParser est utilisé pour valider et analyser les URL Vimeo. L'objectif principal de la classe est de vérifier si une URL donnée peut être gérée par la classe YTVimeoExtractor . |
YTVimeoVideo | YTVimeoVideo représente une vidéo Vimeo. Utilisez cette classe pour accéder aux informations sur une vidéo particulière. N'initialisez pas manuellement un objet YTVimeoVideo . L'utilisation de la méthode -init lancera une exception, utilisez plutôt les deux méthodes principales de la classe YTVimeoExtractor pour obtenir un objet YTVimeoVideo . |
Le mode d'installation préféré est via des cocoapodes. Ajoutez simplement à votre podfile
pod 'YTVimeoExtractor'
et exécuter pod install
.
Alternativement, vous pouvez simplement copier le dossier YtvimeoExtractor sur votre projet.
# import " YTVimeoExtractor.h "
Carthage est un gestionnaire de dépendances décentralisé qui construit vos dépendances et vous fournit des cadres binaires.
Vous pouvez installer Carthage avec Homebrew en utilisant la commande suivante:
$ brew update
$ brew install carthage
Pour intégrer YtvimeoExtracteur dans votre projet Xcode à l'aide de Carthage, spécifiez-le dans votre Cartfile
:
github "lilfaf/YTVimeoExtractor"
Exécutez carthage
pour construire le framework et faites glisser le YTVimeoExtractor.framework
construit.framework dans votre projet Xcode.
Utilisez les deux méthodes de bloc dans la classe YTVimeoExtractor
. Les deux méthodes appellent un HEARDIONHHANDLER qui est exécuté sur le thread principal. Si le gestionnaire d'achèvement est nul, une exception sera lancée. Le HEPLIEDHANDLER a, deux paramètres un objet YTVimeoVideo
, si l'opération a été terminée avec succès, et un objet NSError
décrivant le réseau ou l'erreur d'analyse qui a pu se produire.
[[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 la vidéo Vimeo a des restrictions au niveau du domaine et ne peut être lue que à partir de domaines particuliers, il est facile d'ajouter un référent:
[[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 ];
}
}];
YtvimeoExtracteur est sous licence sous la licence du MIT. Voir le fichier de licence pour plus d'informations.