{"id":19522156,"url":"https://github.com/captaincodeman/embedly-dotnet","last_synced_at":"2025-08-17T13:35:13.813Z","repository":{"id":66357874,"uuid":"2001786","full_name":"CaptainCodeman/embedly-dotnet","owner":"CaptainCodeman","description":"Embedly client for .NET","archived":false,"fork":false,"pushed_at":"2014-08-02T03:18:48.000Z","size":19185,"stargazers_count":11,"open_issues_count":5,"forks_count":8,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-08-01T09:08:54.787Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://embed.ly/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CaptainCodeman.png","metadata":{"files":{"readme":"readme.markdown","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-07-05T17:38:49.000Z","updated_at":"2025-05-14T03:55:53.000Z","dependencies_parsed_at":"2023-02-20T02:45:44.561Z","dependency_job_id":null,"html_url":"https://github.com/CaptainCodeman/embedly-dotnet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/CaptainCodeman/embedly-dotnet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CaptainCodeman%2Fembedly-dotnet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CaptainCodeman%2Fembedly-dotnet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CaptainCodeman%2Fembedly-dotnet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CaptainCodeman%2Fembedly-dotnet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CaptainCodeman","download_url":"https://codeload.github.com/CaptainCodeman/embedly-dotnet/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CaptainCodeman%2Fembedly-dotnet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270856563,"owners_count":24657688,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T00:37:26.414Z","updated_at":"2025-08-17T13:35:13.768Z","avatar_url":"https://github.com/CaptainCodeman.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# About embedly-dotnet\n\nembedly-dotnet is a .Net client for [Embed.ly](http://embed.ly/).\n\nAvailable as a [NuGet Package](http://nuget.org/List/Packages/embedly)\n\n## Features\n\n* High-performance URL matching (without regex's)\n* Auto batching of url lookups\n* Async downloading with configurable timeout\n* Request filtering based on provider properties \n* Caching of embedly responses to prevent re-requesting urls\n\n## Examples\nSee the sample project for complete examples.\n\n### Create an Embed.ly client\nThe client handles all interaction with embedly and requires a key to use. No caching will be performed by default.\n\n    var key = ConfigurationManager.AppSettings[\"embedly.key\"];\n    var client = new Client(key);\n\n### Use a Cache\nA cache (implementing a simple `IResponseCache` interface) can be passed to the `Client` constructor and ensures any requests to previously requested urls are served from the cache instead of being re-requested.\n\n    var key = ConfigurationManager.AppSettings[\"embedly.key\"];\n    var database = ConfigurationManager.ConnectionStrings[\"embedly.cache\"];\n    var cache = new MongoResponseCache(database.ConnectionString);\n    var client = new Client(key, cache);\n\nExample `InMemoryResponseCache`, `MongoResponseCache` (MongoDB) and `AdoResponseCache` (e.g. SQL Server) implementation are included.\n\n### Check if URL supported by Embed.ly\nThis is used internally to ensure the only Urls sent to embedly are supported ones. \n\n    client.IsUrlSupported(url);\n\n### Retrieve Video Information\nThis shows a request for a video Url from YouTube.\n\n    var result = client.GetOEmbed(new Uri(@\"http://www.youtube.com/watch?v=YwSZvHqf9qM\"), new RequestOptions { MaxWidth = 320 });\n\t\t\t\n    // basic response information\n    var response = result.Response;\n    Console.WriteLine(\"Type           : {0}\", response.Type);\n    Console.WriteLine(\"Version        : {0}\", response.Version);\n\n    // link details\n    var link = result.Response.AsLink;\n    Console.WriteLine(\"Author         : {0}\", link.Author);\n    Console.WriteLine(\"AuthorUrl      : {0}\", link.AuthorUrl);\n    Console.WriteLine(\"CacheAge       : {0}\", link.CacheAge);\n    Console.WriteLine(\"Description    : {0}\", link.Description);\n    Console.WriteLine(\"Provider       : {0}\", link.Provider);\n    Console.WriteLine(\"ProviderUrl    : {0}\", link.ProviderUrl);\n    Console.WriteLine(\"ThumbnailHeight: {0}\", link.ThumbnailHeight);\n    Console.WriteLine(\"ThumbnailUrl   : {0}\", link.ThumbnailUrl);\n    Console.WriteLine(\"ThumbnailWidth : {0}\", link.ThumbnailWidth);\n    Console.WriteLine(\"Title          : {0}\", link.Title);\n    Console.WriteLine(\"Url            : {0}\", link.Url);\n    Console.WriteLine();\n\n    // video specific details\n    var video = result.Response.AsVideo;\n    Console.WriteLine(\"Width          : {0}\", video.Width);\n    Console.WriteLine(\"Height         : {0}\", video.Height);\n    Console.WriteLine(\"Html           : {0}\", video.Html);\n    Console.WriteLine();\n\n## Lookups Urls matching specific provider\nA list of urls can be automatically filtered based on any property of the provider. In this case, we're only interested in getting information about YouTube videos ('urls' is `IEnumerable\u003cUri\u003e`).\n\n    var results = client.GetOEmbeds(urls, provider =\u003e provider.Name == \"youtube\", new RequestOptions { MaxWidth = 320 });\n\n## Lookups Urls based on provider type\nSimilar to the previous example, this expands the lookup to cover all providers of videos.\n\n    var results = client.GetOEmbeds(urls, provider =\u003e provider.Type == ProviderType.Video, new RequestOptions { MaxWidth = 320 });\n\n## Limitations\nThe current version supports [oEmbed](http://embed.ly/docs/endpoints/1/oembed).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaptaincodeman%2Fembedly-dotnet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcaptaincodeman%2Fembedly-dotnet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaptaincodeman%2Fembedly-dotnet/lists"}