{"id":30420789,"url":"https://github.com/skybrud/skybrud.videopicker","last_synced_at":"2025-10-05T22:37:27.970Z","repository":{"id":45131614,"uuid":"92815130","full_name":"skybrud/Skybrud.VideoPicker","owner":"skybrud","description":"Advanced video picker for Umbraco.","archived":false,"fork":false,"pushed_at":"2024-03-03T12:43:06.000Z","size":3219,"stargazers_count":1,"open_issues_count":2,"forks_count":2,"subscribers_count":4,"default_branch":"v2/main","last_synced_at":"2025-07-22T09:37:16.730Z","etag":null,"topics":["csharp","dotnet","limbo","package","skybrud","umbraco","umbraco-backoffice","umbraco-cms","umbraco-package","umbraco-packages","umbraco-property-editor","umbraco-v7","umbraco-v8","video","video-picker","videos","vimeo","vimeo-api","youtube","youtube-api"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/skybrud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2017-05-30T09:01:42.000Z","updated_at":"2022-01-06T15:19:32.000Z","dependencies_parsed_at":"2024-03-03T13:48:58.484Z","dependency_job_id":null,"html_url":"https://github.com/skybrud/Skybrud.VideoPicker","commit_stats":null,"previous_names":[],"tags_count":32,"template":false,"template_full_name":null,"purl":"pkg:github/skybrud/Skybrud.VideoPicker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skybrud%2FSkybrud.VideoPicker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skybrud%2FSkybrud.VideoPicker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skybrud%2FSkybrud.VideoPicker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skybrud%2FSkybrud.VideoPicker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skybrud","download_url":"https://codeload.github.com/skybrud/Skybrud.VideoPicker/tar.gz/refs/heads/v2/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skybrud%2FSkybrud.VideoPicker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271606605,"owners_count":24788981,"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-22T02:00:08.480Z","response_time":65,"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":["csharp","dotnet","limbo","package","skybrud","umbraco","umbraco-backoffice","umbraco-cms","umbraco-package","umbraco-packages","umbraco-property-editor","umbraco-v7","umbraco-v8","video","video-picker","videos","vimeo","vimeo-api","youtube","youtube-api"],"created_at":"2025-08-22T08:20:11.324Z","updated_at":"2025-10-05T22:37:22.937Z","avatar_url":"https://github.com/skybrud.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Skybrud.VideoPicker\n\n*Skybrud.VideoPicker* adds a property editor and a grid editor to your Umbraco backoffice that let's your users enter the URL of either a YouTube or Vimeo video.\n\nThe package will then fetch information about the video (title, description, duration etc.) from the relevant API.\n\nUsers will also be able to select a custom thumbnail for the video - or just stick with the default thumbnail from YouTube/Vimeo.\n\n![image](https://user-images.githubusercontent.com/3634580/32501030-364256de-c3d7-11e7-9300-02ce084deaf1.png)\n\n## Links\n\n- \u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\n- \u003ca href=\"#examples\"\u003eConfiguration\u003c/a\u003e\n  - \u003ca href=\"#youtube\"\u003eYouTube\u003c/a\u003e\n  - \u003ca href=\"#vimeo\"\u003eVimeo\u003c/a\u003e\n  - \u003ca href=\"#grid-editor\"\u003eGrid editor\u003c/a\u003e\n\n\n\n## Installation\n\n1. [**NuGet Package**][NuGetPackage]  \nInstall this NuGet package in your Visual Studio project. Makes updating easy.\n\n1. [**ZIP file**][GitHubRelease]  \nGrab a ZIP file of the latest release; unzip and move the contents to the root directory of your web application.\n\n[NuGetPackage]: https://www.nuget.org/packages/Skybrud.VideoPicker/\n[GitHubRelease]: https://github.com/skybrud/Skybrud.VideoPicker/releases/latest\n\n\n\n## Configuration\n\n### YouTube\n\nIn order to get information about YouTube videos, you need to configure a Google server key that is used for accessing the YouTube API. You can do so by adding the following line to the `appSettings` element in your `Web.config`:\n\n```xml\n\u003cadd key=\"SkybrudVideoPicker:GoogleServerKey\" value=\"Your Google server key\" /\u003e\n```\n\n### Vimeo\n\nIn a similar way, you need to configure Vimeo so we can fetch information about Vimeo videos. This is done by adding your Vimeo OAuth 2.0 access token to the `appSettings` element:\n\n```xml\n\u003cadd key=\"SkybrudVideoPicker:VimeoAccessToken\" value=\"Your Vimeo access token\" /\u003e\n```\n\nYou can find a list of your existing Vimeo apps [**here**](https://developer.vimeo.com/apps), or create a new app [**here**](https://developer.vimeo.com/apps/new). Once you have created an app, click on it in the list, and then go to the *Authentication* tab/page - here you'll be able to generate a new access token.\n\n### TwentyThree\n\nThe video picker also supports videos from TwentyThree. However the configuration is a bit special, as you're using a custom domain - as a result of this, the configuration should be as following:\n\n```xml\n\u003cadd key=\"SkybrudVideoPicker:TwentyThree{videos.yourdomain.com}:ConsumerKey\" value=\"TwentyThree consumer key\" /\u003e\n\u003cadd key=\"SkybrudVideoPicker:TwentyThree{videos.yourdomain.com}:ConsumerSecret\" value=\"TwentyThree consumer secret\" /\u003e\n\u003cadd key=\"SkybrudVideoPicker:TwentyThree{videos.yourdomain.com}:AccessToken\" value=\"TwentyThree access token\" /\u003e\n\u003cadd key=\"SkybrudVideoPicker:TwentyThree{videos.yourdomain.com}:AccessTokenSecret\" value=\"TwentyThree access token secret\" /\u003e\n```\n\nIf the parent TwentyThree account allows anonymous access, the access token and access token may be omitted.\n\nAlso, as a result of limitions in the Twenty Three API, entered URLs must look like `https://videos.yourdomain.com/manage/video/12345678` instead of `https://videos.yourdomain.com/friendlyVideoName`.\n\n### Grid editor\n\nThe package also supports adding a grid editor - the JSON configuration for the editor could look like this:\n\n```JSON\n{\n  \"name\": \"Video\",\n  \"alias\": \"VideoPicker\",\n  \"view\": \"/App_Plugins/Skybrud.VideoPicker/Views/VideosGridEditor.html\",\n  \"icon\": \"icon-video\",\n  \"config\": {\n    \"list\": {\n      \"limit\": 5,\n      \"title\": {\n        \"mode\": \"required\"\n      }\n    },\n    \"items\": {\n      \"title\": {\n        \"mode\": \"required\"\n      },\n      \"description\": {\n        \"mode\": \"optional\"\n      }\n    },\n    \"details\": {\n      \"description\": {\n        \"visible\": false\n      }\n    }\n  }\n}\n```\n\nAny property within the `config` object can be omitted, in which case the default value will be used instead.\n\n**List**  \nVia `config.list.limit`, you can set the maximum amount of videos allowed in the list. If you set the limit to `0` (or don't specify it at all), the list won't enforce any limits. A limit of `1` will instead turn the video picker list into a single video picker.\n\nIf you wish to let your editors specify a title for the entire list of videos, you can set `config.list.title` to either `required` or `optional`. Default is `hidden`.\n\n**Items**  \nAs you might want to overwrite the original title and/or description of a video, you can also control this via the `config.items.title.mode` and `config.items.description.mode` properties. Like with the list title, accepted values are `required`, `optional` and `hidden`. Default is `hidden`.\n\n**Details**  \nSome videos may have some long descriptions, which then also takes up a lot of space in the UI. If this is the case, you can use the `config.details.description.visible` property to hide the original description. Acceptable values are `true` and `false`. Default is `false`.\n\nThere are currently no options to hide the original title or the duration of the video.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskybrud%2Fskybrud.videopicker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskybrud%2Fskybrud.videopicker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskybrud%2Fskybrud.videopicker/lists"}