2014-03-01 92 views
-2

我有YouTube视频网址保存在数据库中,我使用iframe将它们嵌入到我的网页中,是否有一种方法可以在不使用任何API的情况下使用C#代码获取视频标题。如何使用网址获取YouTube视频标题

+4

然后使用一个 - YouTube的API:https://developers.google.com/youtube/v3/ –

+3

OP要求拿到冠军** **没有的API。一个简单的网页,然后一些HTML解析就足够了。 – BartoszKP

+1

我认为OP的意思是“没有DLL中的代码”或“没有SDK”。网络上通常使用“API”这个词来指代服务端点,OP肯定会使用这些端点来解决这个问题。语义 - 可能在原始问题中得到澄清。 –

回答

8

如果你不想直接使用API​​,你可以使用我很久以前使用的这个小函数。

using System; 
using System.Web; 
using System.Net; 

public static void Main() 
{ 
    var url = "https://www.youtube.com/watch?v=NHfWY0is3rE"; 
    string name = GetTitle(url); 
    Console.WriteLine(name); 
} 

public static string GetTitle(string url) 
{ 
    var api = $"http://youtube.com/get_video_info?video_id={GetArgs(url, "v", '?')}"; 
    return GetArgs(new WebClient().DownloadString(api), "title", '&'); 
} 

private static string GetArgs(string args, string key, char query) 
{ 
    var iqs = args.IndexOf(query); 
    return iqs == -1 
     ? string.Empty 
     : HttpUtility.ParseQueryString(iqs < args.Length - 1 
      ? args.Substring(iqs + 1) : string.Empty)[key]; 
} 

但是你真的应该使用API​​来代替这个。基本上我使用API​​的一小部分。

Demo

+0

不熟悉此类“地址” - 是您创建的自定义类吗? –

+1

@RickDailey事实上,你不需要在这里。我删除它,并添加了一个正常的WebClient。 – aloisdg

+0

@aloisdg:很好的工作,谢谢你... – user3366972

相关问题