Месяц назад написал
public static int DownloadString(string url, out string responce)
{
WebClient client = new WebClient();
int result = DownloadString(client, url, out responce);
client.Dispose();
return result;
}
public static int DownloadString(WebClient webClient, string url, out string responce)
{
int errorCode;
try
{
responce = webClient.DownloadString(url);
errorCode = 200;
}
catch (WebException e)
{
if (e.Status == WebExceptionStatus.ProtocolError)
{
HttpWebResponse httpWebResponse = (HttpWebResponse)e.Response;
responce = httpWebResponse.StatusDescription;
errorCode = (int)httpWebResponse.StatusCode;
}
else
{
errorCode = 400;
responce = "Client error";
}
}
return errorCode;
}
public static WebClient GetYouTubeWebClient()
{
WebClient wc = new WebClient();
wc.Headers.Add("Accept", YOUTUBE_ACCEPT_STRING);
wc.Encoding = Encoding.UTF8;
return wc;
}
public static int GetYouTubeVideoWebPage(string videoId, out string resultPage)
{
string videoUrl = string.Format(YOUTUBE_VIDEO_URL, videoId);
int res = DownloadString(videoUrl, out resultPage);
return res;
}
public static int GetYouTubeVideoInfoEx(string videoId, out string resInfo)
{
int res = GetYouTubeVideoWebPage(videoId, out string page);
if (res == 200)
{
Clipboard.SetDataObject(page, true, 10, 100);
int n = page.IndexOf("var ytInitialPlayerResponse");
if (n > 0)
{
int n2 = page.IndexOf(";</script><div");
if (n2 > 0)
{
resInfo = page.Substring(n + 30, n2 - n - 30);
return res;
}
}
}
resInfo = "Client error";
return 400;
}
Давно не запускал. Сейчас запускаю, а там вместо русских букв получается месиво:
"shortDescription": "Нарезаем салаты, встречаем 2021.\nhttps://patreon.com/bocha\nhttps://16-bits.ru\nКраткое оглавление некоторых РІРѕРїСЂРѕСЃРѕРІ (уточнения принимаются):\n0:00 Приветствие\n0:50 Распаковка серебряной РєРЅРѕРїРєРё YouTube\n7:23 РџСЂРѕ пандемию\n23:04 РџСЂРѕ Apple Silicon M1 ARM\n35:00 РџСЂРѕ PS5 Рё Xbox Series X/S\n36:27 РџСЂРѕ IPv6\n37:39 Intel vs AMD\n47:06 РџСЂРѕ бас-гитару РЅР° чипе Commodore SID\n57:17 РџСЂРѕ печать РІ RDP (RosaOS)\n1:19:19 РџСЂРѕ планшеты РЅР° Linux\n1:24:57 РџСЂРѕ Nintendo Switch\n1:36:15 Ртоги РїРѕ GeForce GTX680\n1:46:21 РџСЂРѕ китайские материнские платы РїРѕРґ старые Intel Xeon\n3:25:40 Псевдотитаны РїСЂРѕ Cisco\n3:52:57 РџСЂРѕ Hackintosh\n4:47:15 РџСЂРѕ чат 16bit\n4:50:15 РџСЂРѕ смысл жизни :-)\n5:16:06 РџСЂРѕ тяжелую музыку\n5:18:43 РџСЂРѕ заработок РЅР° YouTube\n5:22:50 РџСЂРѕ первый ноутбук\n5:51:24 РџСЂРѕ \"Нашу Машу Рё Волшебный Орех\"\n6:06:58 РџСЂРѕ Color Maximite 2\n7:44:32 РџСЂРѕ самый эпичный костыль\n8:56:37 РџСЂРѕ казино Рё РїРѕСЂРЅРѕ РЅР° 16-bits.ru Рё allunix.ru\n9:04:03 Почему плохо быть сисадмином\n9:50:19 РџСЂРѕ Thinkpad РЅР° Pentium II",
"isCrawlable": true,
Раньше работало. А теперь что опять случилось и как это декодировать?