Getting started with plycdn
plycdn hosts your video, audio and documents, delivers them fast, and knows what is inside them. Everything you store can be searched by meaning and by wording, in many languages including Indian languages, and a written answer cites the exact moment in a recording or the page of a document it came from.
This page is the shortest road to a first search. Everything else is linked from the end of it.
1What you can do with plycdn
- Store and deliver files. Storage buckets hold whatever you put in them (video, audio, documents, anything
else) and serve it back publicly or through a signed link (plycdn links), at a
plycdn.nethostname or on your own domain (cdn.example.com): see Your own domain in the Storage guide. - Use the tools you already have. Buckets can also be reached with the S3 and Azure tools you use today: the
AWS CLI, boto3 and the other AWS SDKs, rclone, s3cmd, Cyberduck, the Azure CLI and the Azure Storage SDKs, at hosts such as
s3.{label}.plycdn.netand{account}.blob.{label}.plycdn.net. Those tools sign with a storage credential, created in the dashboard under Developers → Storage credentials, never with your API key. The compatibility guide lists the hosts, what is supported, the limits and how it is charged, with an rclone recipe for moving an existing library in and notes on request signing. - Stream video. Upload a recording once and plycdn encodes it at several qualities (never above the
original), makes a poster and a scrubbing strip, and serves it from a
plycdn.netaddress through links only your backend can sign. A video plays as soon as its lowest quality is encoded, and at every quality once it isready. Your pages show it with the packages' player: keyboard-operable, readable by screen readers, remembering where each viewer stopped, and renewing its links so a four-hour lecture plays through. Your backend hears when each video is playable, ready or failed through signed webhooks, instead of polling. Encoding is counted in minutes of source video, and a video that fails is never counted. Videos live in video libraries, a kind of storage bucket; the Video guide covers the whole path. - Search what is inside. Content Search indexes recordings (what is said, and text shown on screen) and documents, and finds passages by meaning and wording. It can read files you already keep elsewhere, or files held in a plycdn bucket. Storage and search are separate: neither requires the other.
2Three steps to a first search
1. Get access and set up your account
Your plycdn contact gives you access to your organization and the values you need to set up callbacks. In the dashboard:
Create your API key under Developers → API keys. It is shown once, so have your secret store ready. Up to two keys can be active at once, so you can replace one without downtime: rotate, deploy the new key, then deactivate the old one, all in the dashboard, which is the only place keys are managed. Keep a standard key in the service your users reach. An admin key, which also manages sub-organizations and reads the account audit from code (
PlycdnAccountApi), and creates, changes or removes storage buckets, video libraries, custom domains, webhook endpoints and the storage account, and rotates signing keys and webhook secrets, belongs only in the automation that sets accounts and buckets up. See "Getting and rotating API keys" in the API reference. Limits are per key and per plan; ask us to raise them.Tell plycdn where your files are, under Content search → Indexing settings. If your files live in your own storage, three things must be in place before your first upload will index. Skip any of them and uploads appear to succeed while nothing is ever indexed.
- Your storage host: the host part of your blob endpoint, for example
yourcompany.blob.core.windows.net. Host name only: nohttps://, port or path. - Your callback URL:
https://YOUR_BACKEND/api/plycdn-content/v1/source-callback. This does not need to be added to your storage host list. - A callback signing secret of at least 32 characters: the same value you configure in your backend as
Plycdn:CallbackSecret.
The ASP.NET Core package does not start without a callback key and secret, and it registers every file with that key, so the callback is part of the integration rather than an optional extra. Your plycdn contact supplies the callback key and confirms your hosts are permitted. The dashboard's Library page shows the state of everything you submit, including
source_host_not_allowedandcallback_not_configuredif any of the above is missing.- Your storage host: the host part of your blob endpoint, for example
The plycdn API key lives only in your backend's secrets. The browser packages use your application's own login and must never receive it.
2. Add the packages to your application
- Backend: ASP.NET Core (.NET 6 and later, up to .NET 10). Install
Plycdn.ContentSearch.AspNetCore, register it, and let it resolve who is signed in and which organization they belong to. It adds the routes your frontend calls, keeps the plycdn key on your server and forwards calls to plycdn. - Frontend: Angular (13 to 22) or React (18 and later). Angular gets independent upload, search and results,
and playback components; React gets hooks (
useSearch,useAnswerand the rest) to build your own interface. Upload, search, results and playback can be placed independently, and themes, labels and result templates are customizable.
The Integration guide walks through both sides, including how to install from the supplied package files. Storage and video have their own packages, one guide per platform: ASP.NET Core, Angular and React.
3. Upload a file and search it
Upload a recording or a document with the packages' upload component, or register a file you already store. Indexing starts at once; the Library page shows its progress. When it finishes, search for a phrase from inside the file: the result names the moment or page and opens it there. Agree quotas and expected volumes with plycdn before a large first import.
Prefer to call the HTTP API yourself, with no packages? The API reference covers every endpoint.
3What it costs
You pay for what you use, at list prices published on the Plans and prices page, with the
quantities counted as described in "How usage is counted" in the Integration guide. You can
go live on any day of the month: the first and last months are prorated. GetUsageAsync and the usage and
statement methods read what your account has used, by whole month or by day, against your plan's quotas, and read
closed monthly statements including a CSV download. "What you have used" in the API reference is the
field-by-field reference.
4Where to go next
| You want to | Read |
|---|---|
| Connect your application end to end | Integration guide |
| See plans, what each includes and the list prices | Plans and prices |
| Add storage and video from ASP.NET Core, Angular or React | ASP.NET Core, Angular, React |
| Build directly against the HTTP API | API reference |
| Buckets, uploads, signed links, caching, CORS, purges, usage and delivery analytics, including traffic breakdowns by customer, course or campaign | Storage |
| Video libraries, encoding, the player and signed webhooks | Video |
| Use S3 and Azure tools with plycdn buckets | S3 and Azure compatibility |
| See what changed in each release, and how to move to it | Release notes and Upgrading |
5Reporting a file
If you believe a file plycdn is storing or delivering should not be, or that a stored file infringes rights or breaks the law, report it to [email protected] with the bucket and object key (or the link) and the reason. The Storage guide describes what happens to a reported file.
For help with an integration, contact your plycdn representative.