Я думаю, что вам будет лучше в долгосрочной перспективе, если вы используете один из API YouTube .
Я бы использовал веб-запросы и HtmlAgilityPack только в крайнем случае, когда API не существует. Основная причина этого в том, что если YouTube когда-либо изменит свою страницу, это нарушит ваш код. Открытые API, как правило, ориентированы на обратную совместимость, поэтому в большинстве случаев ваше приложение должно работать бесконечно.
Вот пример кода из API Youtube:
YouTubeQuery query = new YouTubeQuery(YouTubeQuery.DefaultVideoUri);
//order results by the number of views (most viewed first)
query.OrderBy = "viewCount";
// search for puppies and include restricted content in the search results
// query.SafeSearch could also be set to YouTubeQuery.SafeSearchValues.Moderate
query.Query = "puppy";
query.SafeSearch = YouTubeQuery.SafeSearchValues.None;
Feed<Video> videoFeed = request.Get<Video>(query);
printVideoFeed(videoFeed);
Выглядит просто, верно?