获取 Vine .mp4 源 - iOS

Get the Vine .mp4 source - iOS

我已经找到了一些很好的答案,但是在 PHP 中,是否有使用 JavaScript 或 iOS 的方法?

我找到的 link 个:

  1. How to get Vine video url(不确定这是如何实现的)
  2. Get .mp4 source and poster image from Vine Id (PHP) - 它是 php 所以这不是我要追求的。

例如,当您在视频上打开 "inspect element" 时,应该会出现此代码(自然具有不同的 ID):

如果您输入 url("https://v.cdn.vine.co/r/videos/..... .mp4) 并在 .mp4 处停止,视频将在您的浏览器中作为视频播放,如下所示:

https://v.cdn.vine.co/r/videos/283A5A8FE01255752559474962432_365d817ea89.4.3.6417578100978898648.mp4

这就是我想要的; url("https://....")。我可以编辑 URL 的全部内容以仅获取 .mp4 而不是之后的内容,即 .jpg。我能做到的。在不使用 PHP 的情况下,我似乎无法通过按原样使用 https://vine.co/v/eUm1bYVvWj6 link 来获取 url 内容。

如有任何帮助,我们将不胜感激。

我同时拥有 UIWebView 和 MPMoviePlayer,可以在我的 url 请求中使用 HTML 字符串,或者使用 MPMoviePlayer 播放 .mp4 URL。我只想知道如何获得 .mp4。

在尝试使用 HTML/JS 通过创建 HTML 字符串并通过 iframe 解析藤来解决此问题后,我无法获得检索 .mp4 的预期结果 link。

我通过以下方式克服了这个问题:

  1. 转到 Ray Wenderlich 解析教程 HTML,然后按照教程进行任何需要的操作。您需要的最重要的部分是将 hpple 文件安装到您的项目(通过 Ray Wenderlich 教程找到)和引用 libxml2。

  2. 使用这段代码解析得到MP4:

    -(void)loadVine: (NSString *) vineLink {
        //create the string to store the result
        NSString * url = nil;
        // Create a URL from the String passed in
        NSURL *vineURL = [NSURL URLWithString:vineLink];
    
        NSData *vineHTMLdata = [NSData dataWithContentsOfURL:vineURL];
    
        TFHpple *vineParser = [TFHpple hppleWithHTMLData:vineHTMLdata];
    
        // This is the most important part of your query
        // The vine .mp4 path is in the `<meta>` tag as show below
        NSString *vineXpathQueryString = @"//meta[@property='twitter:player:stream']";
        NSArray *vineNodes = [vineParser searchWithXPathQuery:vineXpathQueryString];
    
        for (TFHppleElement *element in vineNodes) {
            //this sets your `NSString * url` to be the result
            url = [element objectForKey:@"content"];
            //print it out in log to display your .mp4 link
            NSLog(@"What is the vine? %@", url);
            //now pass it to your player
            [self autoPlayVine:url];
        }
    }
    
  3. 这是我的藤播放器代码:

    -(void) autoPlayVine :(NSString *) link{
    
        NSURL * url = [NSURL URLWithString:link];
    
        self.moviePlayer =  [[MPMoviePlayerController alloc] initWithContentURL:url];
    
        [[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(moviePlayBackDidFinish:)
                                             name:MPMoviePlayerPlaybackDidFinishNotification
                                           object:self.moviePlayer];
    
        self.moviePlayer.controlStyle = MPMovieControlStyleDefault;
        self.moviePlayer.shouldAutoplay = YES;
        // set the frame to be full screen - needed otherwise you may only get the audio as there is no frame size set, but the movieplayer has been added to the view
        self.moviePlayer.view.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height);
        // below enables either continuous loop or delete for one time play
        self.moviePlayer.repeatMode = YES;
        [self.view addSubview:self.moviePlayer.view];
        [self.moviePlayer setFullscreen:YES animated:YES];
    }
    
  4. 根据您的喜好在 viewDidLoadviewWillAppear 中调用它:

    NSString * yourVineLink = @"https://vine.co/v/.......";
    [self loadVine:yourVineLink];
    

请务必按照 Ray Wenderlich 教程确保您已将正确的文件和导入语句添加到您的项目中。如果你这样做了,这应该一切正常(除非 Vine 决定改变它的 meta tags/placement of .mp4 link)。

注意:您可以在方法名称中使用 URL,但我喜欢 NSString,这只是我的风格。

尽情享受吧。