从视频URL获取Vine post
本文关键字:Vine post 获取 URL 视频 | 更新日期: 2023-09-27 18:04:26
我正在使用Vine API包装器"VineSharp" nuget包来尝试获取有关Vine视频的一些细节。我有视频的URL。例如:"https://vine.co/v/eYgeYlYAOQv"然而,为了获得vine post数据,显然VineSharp(以及其他vine API包装器)要求插入vine post ID -我没有。
我搜索了很多谷歌,想知道如果我有视频URL或视频ID,我怎么能得到帖子ID -但找不到任何东西。
如果Vine API支持post查询,使用post的id来获取特定帖子的详细信息,那么post id本身只能从另一个API调用的Json(如时间轴或通道请求)中检索是不符合逻辑的…
我错过了什么?
用WebClient
类下载https://vine.co/v/eYgeYlYAOQv
的内容,用正则表达式解析结果。
post ID在返回的网页中出现多次。您可以使用以下正则表达式之一(或者两者都使用):
<>以前葡萄://post/(' d +) [^ ' d] 之前<>之前"postIdStr":' s *"(' d +)" 之前第一个匹配组将包含post ID。
下面是一个尝试两种模式的工作示例:https://regex101.com/r/aV9fD8/4
下面是一个工作示例,下载网站,尝试两种模式并打印第一个匹配的post ID: https://dotnetfiddle.net/klWnxw
using (var client = new WebClient())
{
var content = client.DownloadString("https://vine.co/v/eYgeYlYAOQv");
var postIdMatch = Regex.Match(
content,
@"vine://post/('d+)[^'d]|""postIdStr"":'s*""('d+)""");
if (postIdMatch.Success)
Console.WriteLine(
postIdMatch.Groups[1].Value != string.Empty
? postIdMatch.Groups[1].Value
: postIdMatch.Groups[2].Value);
else
Console.WriteLine("No post ID found.");
}
输出:1270971006727159808