Documentation
Airdate Video Library Pro: setup guide
Airdate Video Library Pro is a HubSpot module for a library of videos on one page: webinar replays, demos, talks and the sessions still to come. Videos play in the page when a visitor clicks them. Videos you mark "Behind the form" open for everyone who sends one HubSpot form, all at once. Each session moves on its own from "Upcoming" to "Live now", then to its replay, from the dates you type. Visitors filter by topic, format, speaker and language, and every view and every video has its own link.
Not installed yet? See what it does, with a live demo: A video library for HubSpot pages, with one form for all videos.
It works on every HubSpot plan with website or landing pages. No HubDB table, no app to install, no license key, no outside service: the module runs in the page, from its own fields.
Important: the form is a soft gate. Like every embedded player, the video addresses are in the page, so a visitor who reads the page source can watch without the form. It is made to collect contacts in exchange for your recordings, not to protect private content. See "Limits" below.
1. Install and add the module
- Buy Airdate Video Library Pro on the HubSpot Template Marketplace (39 $, one payment, updates included). It is installed in the HubSpot account you choose.
- Open a website page, landing page or blog post in the editor.
- In the Add panel, search for Airdate Video Library Pro and drag it where you want the library.
- Fill in the Videos, choose the Form, then publish.
A new module comes with four sample videos without dates or links. In the editor they get sample dates (the first one next week), so the library never looks empty while you set it up; on the live page, a video without a date is hidden. Yellow notes in the editor say what is missing. Visitors never see them.
2. Heading and introduction
- Heading and Heading level (H2, H3 or H4): "Video library" by default. Leave it empty to show none. Video titles take the level under it.
- Introduction: one line under the heading. Leave it empty to show none.
3. Videos
Up to 100 videos, in any order. For each one:
- Title.
- Date and time: when the session starts, or when the video was published. Visitors see it in their own time zone. See "When a video shows what" below.
- Duration (minutes): shown on the thumbnail. For a session, it also sets how long it shows "Live now", and the end time sent to calendars.
- Video link: YouTube, Vimeo, Loom or Wistia, or an MP4 or WebM file. See "Video links" below. Empty after the session: the card reads "Replay soon".
- Access: Behind the form (the default) or Free to watch.
- Featured: featured videos come first, on a card as wide as the library.
- Topics: one or more, separated by commas, such as
Marketing, Analytics. - Format: one word or two, such as Webinar, Demo, Talk or Interview. You choose the list: every format you type becomes a choice of the format filter, and a label on the thumbnail.
- Speakers: names separated by commas. Add a photo and a role once under "Speaker photos and roles" (section 8).
- Language, such as English or Français: with two languages or more, a language filter appears.
- Short summary (optional): two lines on the card, all of it in the player window.
- Thumbnail (optional): a 16:9 still. Without one, the module draws a plain thumbnail in your colors. It never fetches a thumbnail from YouTube or Vimeo, so no request leaves for them before a click.
- Registration link (upcoming session) and Join link (during the session): the buttons of a session before and during it.
- Chapters (optional): one per line, a time then a title, such as
12:30 Pricing questions. See section 6. - Slides and files (optional): up to 5 per video, each with a title and a file or link, shown under the player. Behind the form when the video is.
- Direct link name (optional): the end of the video's own link, such as
pricing-pagesin…#v=pricing-pages. Empty: made from the title.
4. When a video shows what
The module looks at each video's date and duration in the visitor's browser, on every visit, so the library stays right on cached pages and changes by itself while the page is open:
| Moment | On the card |
|---|---|
| Before the date | "Upcoming", the day and time in the visitor's time zone, a date box on the thumbnail, Register (the registration link) and Add to calendar. |
| During the duration | "Live now" and Join now (the join link, or else the registration link). A video with neither link is never shown live: a recording you publish today is simply a video. |
| After it, with a video link | The video, to play in the page. "New" during the first days (see section 9). |
| After it, no video link yet | "Replay soon". Add the link when the recording is ready. |
In the default order, featured videos come first, then the live and upcoming sessions (the soonest first), then every other video, newest first.
5. One form for the whole library
- Form: the HubSpot form that opens every video marked "Behind the form". Forms from the new form editor and from the legacy editor both work. Keep the inline message: a redirect sends the visitor away.
- Form heading and Form text: shown above the form, in the player window.
- Remember the visitor for (days): 180 by default, from 0 to 730. With 0, only until the browser tab is closed.
- Unlock key (optional): libraries and Airdate Replay Gate blocks with the same key open together, on any page of the site. Empty:
video-library, shared by every library of the site. - Open link parameter (optional): a word, such as
replay, that opens the library without the form when it is in the page address. See "A link in your emails". - Skip the form for known contacts: off by default. See "Known contacts".
- In the editor, show: The library locked or The library unlocked, to check both states in the editor and in previews.
While some videos are locked, a bar above the library says so, with an Unlock all videos button that opens the form alone. A visitor who clicks a locked video gets the same form in the player window, beside the video; as soon as it is sent, that video plays and every other one opens. Without a form chosen, every video is free to watch, and a note in the editor says so.
6. The player
- Player: In a window over the page (the default) or Above the library, in the page.
- The player of YouTube, Vimeo, Loom or Wistia loads only when the visitor clicks a video. Until then, nothing is requested from these platforms.
- Chapters: under the player (beside it on wide screens), one button per chapter. A click starts the video at that time: YouTube, Vimeo, Loom and Wistia restart at the chapter, a video file jumps there. Accepted lines:
12:30 Title,1:02:03 Title(with hours),12:30 - Title,(12:30) Title. Lines that do not start with a time are left out. - Files: the slides and files of the video, under the chapters.
- Copy the link to this video: copies the video's direct link (see section 7).
- Escape, the close button or a click outside the window closes it. The video stops, and the keyboard focus goes back to the card that opened it.
7. Filters, search, sort and links
- Filters and search: search field, topic, format, speaker and language filters, sort menu (newest first, oldest first, title), each on or off. A filter shows only when the videos have two values or more for it. On phones, the filters fold behind a Filters button.
- Videos shown at first: 9 by default, then Show more videos.
- Keep the filters and the open video in the page address: on by default. A filtered view gets its own address, such as
…?topic=Marketing&q=pricing, that visitors can share or bookmark; the open video adds#v=…. Other parameters of the address (utm_source…) are kept. Only the first library of a page with the option on uses the address.
Direct links. A link ending in #v= and the video's link name opens the window on that video, with a play button: the player still loads only on the visitor's click. Links to a video behind the form open the form. Use them in emails, posts or a "watch next" link on another page.
8. Speaker photos and roles
Under Speaker photos and roles (optional), one line per speaker, once for the whole library: Full name, Role (optional) and Photo (optional). A speaker named the same way in the Speakers of a video gets this photo on the card and this role in the player window. Without a photo, the initials are drawn.
9. Badges and calendars
- "New" badge for (days): 14 by default; 0 for no badge. It counts from the video's date.
- Add to calendar (upcoming sessions): Google Calendar, Outlook.com, Office 365 and Apple Calendar (an .ics file, which also works with most other calendars) by default; Yahoo Calendar off. All off: no button. Times are sent in UTC, so the session lands at the right hour in every calendar. The event's place is the join link, else the registration link.
10. Data for search engines
- Add video and event data (schema.org): off by default. When on, the module writes
VideoObjectdata for each video (title, summary, thumbnail, date, duration, player address) andEventdata for each upcoming or live session (dates, online, registration address, speakers), for Google's video and event results. - Leave out the address of videos behind the form: on by default. Their title, summary, thumbnail and date are still described.
The data is written by the script, from the moment of each video at the time of the visit, as in our free modules: Google runs it. Google requires a thumbnail for video data: a video without one gets no VideoObject (it would only appear as an error in Google Search Console), so give each video a thumbnail. Upcoming sessions do not need one.
11. Texts
Every word the module shows is a field, in the Texts group: search label and placeholder, filter names, the "All" choice, sort menu, result count ({n} is the number), no result, show more, badges, buttons (register, join, add to calendar and each calendar), card texts, lock bar, player window (chapters, files, copy link, close), messages read by screen readers, and the editor notes. Write them in your page's language. Ready-to-paste texts are below.
Dates and times follow the language of the page.
12. Appearance
In the Style tab:
- Colors: accent (buttons, active filters, focus ring; inherited from your theme's primary color), text on accent, text, secondary text, card background, borders, drawn thumbnails and player, live badge, form panel background.
- Columns: 2, 3 (the default) or 4 on wide screens. A narrow column gets fewer by itself; phones show compact rows.
- Corner radius: 0 to 24 px.
The module uses your theme's font. The form keeps the style of your theme or of the form itself; the module only removes the white box the new form editor puts around a form, so it lines up with the panel.
How the library remembers visitors
When the form is sent, the module notes in the visitor's browser that the library is open, with an end date (now plus the number of days you set). It uses the browser's local storage for your site, under the name airdate-replay-gate: followed by the unlock key: the same name and format as Airdate Replay Gate, which is why a library and a Replay Gate block with the same key open together. A Replay Gate block left with an empty key (its key is then its video link) opens the library's video with that same link.
The module sets no cookie and sends nothing anywhere. A visitor on another browser or device sees the form again, unless HubSpot knows them and the known contacts option is on.
Lock it again to test. Clear your site's data in your browser, or open the page in a private window. You can also choose The library locked in the editor.
A link in your emails
Type a word in Open link parameter, such as replay, and add it to the page address in your follow-up email: https://example.com/videos?replay. The library opens without the form, and the visitor is remembered as if they had sent it. Combine it with a direct link to send people to one video: https://example.com/videos?replay#v=pricing-pages. Anyone who has the link can open the videos.
Known contacts
With Skip the form for known contacts on, visitors HubSpot already knows see the videos directly. HubSpot decides it when it serves the page, from its own tracking cookie, which your cookie banner and policy control; the module adds no tracking of its own. Visitors who declined cookies are not known and see the form. A page that reads contact data may lose HubSpot's prerendering (its fast cached copy): if the page gets slower with the option on, leave it off. The option is ignored in the editor and in previews.
Video links
- YouTube:
youtube.com/watch?v=…,youtu.be/…, embed, live and shorts links. It plays in YouTube's privacy-enhanced mode (youtube-nocookie.com). A start time in the link (t=90,t=1m30s) is kept. - Vimeo:
vimeo.com/123456789, unlisted videos with their private hash, live events (vimeo.com/event/…; no chapters for these). - Loom:
loom.com/share/…orloom.com/embed/…. - Wistia:
yourname.wistia.com/medias/…,wi.st/medias/…or an embed link. - Video files: an address ending in
.mp4or.webm(also.m4vand.movif the browser plays them), for example from the HubSpot file manager. The thumbnail is used as the first image.
Any other link plays nowhere in the page: the window shows a Watch on the video's site button, which opens it in a new tab. A javascript: or data: link is ignored.
Without JavaScript
The whole library is in the page: featured videos first, then newest first, each with its date, speakers and summary. Videos free to watch link to their video; videos behind the form have no link. Filters, the form, the player and the session buttons need JavaScript, and stay out of the way without it.
Accessibility
- The player window is a real dialog, named by the video title: the page behind it is inert, Tab stays inside, Escape closes it and the focus goes back to the card.
- Locked videos say so in words ("Unlock with the form"), not with the icon alone. When the form is sent, a message is read by screen readers and the focus moves to the player.
- Filters are native fields with labels; the result count is announced, once the visitor stops typing. "Show more" moves the focus to the first video added.
- The calendar menu opens with the keyboard (arrow down, Home, End, Escape). Links that open a new tab say so to screen readers.
- Buttons and fields are at least 40 px high. Every state has a visible focus ring. Live sessions say "Live now" in words.
- Tested with axe-core (WCAG 2.2 AA and best practices) at 1280 and 375 px, with the window, the form, the calendar menu and the inline player open: no violation.
Privacy
- No cookie, no analytics event, no outside script from the module. One functional note in the browser's local storage, described above.
- The players of YouTube, Vimeo, Loom and Wistia load only after the visitor's click on a video, from these platforms, under their own policies. YouTube plays in its privacy-enhanced mode.
- Form submissions go to HubSpot, like any submission of that form.
Limits
- A soft gate, not protection. The video addresses are in the page, as with every embedded player, and the unlock is remembered in the browser: someone who reads the page source, or changes their browser's storage, can watch without the form. For content that must stay private, use HubSpot memberships (private content, Content Hub Professional or above) or the access settings of your video host.
- Per browser. The module remembers the browser, not the person.
- Blocked storage. If the browser blocks site storage (some private modes), the videos open after the form for that page view only.
- Sharing settings. A video must be allowed to play on other sites. A private YouTube video, a Vimeo video limited to other domains, or a Loom or Wistia video that is not public shows the platform's own message. Use unlisted videos.
- 100 videos per module. For more, split them into several libraries (one per topic or per year), with the same unlock key.
- One library per page in the address. With two libraries on a page, only the first one keeps its filters in the address.
- Chapters do not apply to Vimeo live events or to links that open on another site.
- Not a course platform. No video hosting, viewing statistics, quizzes or certificates, and no blog posts as a source.
Coming from the free modules
Our free modules stay free and complete, and do one job each: Airdate Replay Gate puts one video behind one form, Airdate Webinar Replays lists links to your past replays with a category filter, Airdate Session List shows the next sessions of a series. Video Library Pro is a different module that does what none of them do: the videos play in the page, one form opens a whole library, upcoming sessions and replays live in the same list and change by themselves, with filters in the address, direct links, chapters, files and data for search engines. It shares Replay Gate's unlock key, so both can live on one site.
FAQ
Does it need a HubSpot Content Hub plan?
No. It works on every HubSpot plan with website or landing pages, free included. It needs no HubDB table and no membership.
Does it work in emails?
No. It works in website pages, landing pages and blog pages. In your emails, link to the page, with a direct link and the open link parameter if you like.
Where do the form submissions go?
To HubSpot, like any submission of that form. The module only opens the videos.
Can a video be free and another behind the form in the same library?
Yes: set Access on each video.
Do upcoming sessions need to be updated after they run?
No. They turn live, then into replays, from their date and duration. You only add the video link when the recording is ready.
Can I translate it?
Yes. Every text is a field; see the tables below. Dates follow the page language.
Is there a license key or a yearly fee?
No. One payment of 39 $, for one HubSpot account, with updates.
Refunds
30-day money-back guarantee: if Video Library Pro is not right for you, ask within 30 days of your purchase and you get a full refund, no questions asked. Full terms: www.airdatethemes.com/terms.
Texts in French, German and Spanish
Every word the module shows is a field. To use the module on a page in another language, open the module in the editor and paste these texts in the matching fields. Keep the words in braces, such as {n}, as they are: the module replaces them. Dates, times and numbers already follow the language of the page.
French (Français)
| Field | Text to paste |
|---|---|
| Heading | Vidéothèque |
| Introduction | Webinaires, démos et conférences, prêts à regarder. Filtrez par thème ou cherchez un intervenant. |
| Form heading | Accéder à toute la vidéothèque |
| Form text | Dites-nous où envoyer la suite, et toutes les vidéos s’ouvrent ici même. |
| Search label | Rechercher dans les vidéos |
| Search placeholder | Titre, intervenant ou thème |
| Topic filter | Thème |
| Format filter | Format |
| Speaker filter | Intervenant |
| Language filter | Langue |
| Every value of a filter | Tous |
| Filters button (phones) | Filtres |
| Sort menu | Trier |
| Sort: newest first | Les plus récentes |
| Sort: oldest first | Les plus anciennes |
| Sort: by title | Titre, de A à Z |
| Result count, one ({n} is the number) | {n} vidéo |
| Result count, several | {n} vidéos |
| No result | Aucune vidéo ne correspond à votre recherche. |
| Button that clears the filters | Voir toutes les vidéos |
| Show more button | Voir plus de vidéos |
| Empty library | Les vidéos apparaîtront bientôt ici. |
| Minutes | min |
| Badge: upcoming session | À venir |
| Badge: live session | En direct |
| Badge: new video | Nouveau |
| Session over, no video yet | Replay à venir |
| Registration button | S’inscrire |
| Join button | Rejoindre |
| Add to calendar button | Ajouter à l’agenda |
| Google Calendar | Google Agenda |
| Outlook.com | Outlook.com |
| Office 365 | Office 365 |
| Apple Calendar | Calendrier Apple (.ics) |
| Yahoo Calendar | Yahoo Agenda |
| Card of an open video | Regarder |
| Card of a video behind the form | Accès par le formulaire |
| Bar above the library while locked | Certaines vidéos s’ouvrent après un court formulaire. |
| Button of that bar | Ouvrir toutes les vidéos |
| Player title when unlocking the whole library | Ouvrir la vidéothèque |
| Text on the locked player | Remplissez le formulaire pour regarder |
| Play button (for screen readers) | Lire la vidéo |
| Message once unlocked (read by screen readers) | Merci ! Toutes les vidéos sont ouvertes. |
| Chapters heading | Chapitres |
| Files heading | Diapositives et fichiers |
| Copy link button | Copier le lien de cette vidéo |
| Once copied | Lien copié |
| Close button (for screen readers) | Fermer |
| Button for videos that cannot play in the page | Regarder sur le site de la vidéo |
| Screen reader hint for links that open a new tab | (s’ouvre dans un nouvel onglet) |
| Editor note: no form | Choisissez un formulaire : sans formulaire, toutes les vidéos sont en libre accès. |
| Editor note: videos without a date | Certaines vidéos n’ont pas de date : elles sont masquées sur la page publiée. Indiquez la date de chaque vidéo. |
| Editor note: no video link | Certaines vidéos n’ont pas encore de lien vidéo : après leur date, elles affichent « Replay à venir ». |
German (Deutsch)
| Field | Text to paste |
|---|---|
| Heading | Videothek |
| Introduction | Webinare, Demos und Vorträge zum Ansehen. Filtern Sie nach Thema oder suchen Sie nach einer Person. |
| Form heading | Zugang zur ganzen Videothek |
| Form text | Sagen Sie uns, wohin wir die Unterlagen senden dürfen, und alle Videos öffnen sich direkt hier. |
| Search label | Videos durchsuchen |
| Search placeholder | Titel, Person oder Thema |
| Topic filter | Thema |
| Format filter | Format |
| Speaker filter | Person |
| Language filter | Sprache |
| Every value of a filter | Alle |
| Filters button (phones) | Filter |
| Sort menu | Sortieren |
| Sort: newest first | Neueste zuerst |
| Sort: oldest first | Älteste zuerst |
| Sort: by title | Titel, A bis Z |
| Result count, one ({n} is the number) | {n} Video |
| Result count, several | {n} Videos |
| No result | Kein Video passt zu Ihrer Suche. |
| Button that clears the filters | Alle Videos zeigen |
| Show more button | Weitere Videos |
| Empty library | Die Videos erscheinen hier in Kürze. |
| Minutes | Min. |
| Badge: upcoming session | Demnächst |
| Badge: live session | Jetzt live |
| Badge: new video | Neu |
| Session over, no video yet | Aufzeichnung folgt |
| Registration button | Anmelden |
| Join button | Jetzt teilnehmen |
| Add to calendar button | Zum Kalender hinzufügen |
| Google Calendar | Google Kalender |
| Outlook.com | Outlook.com |
| Office 365 | Office 365 |
| Apple Calendar | Apple Kalender (.ics) |
| Yahoo Calendar | Yahoo Kalender |
| Card of an open video | Ansehen |
| Card of a video behind the form | Zugang per Formular |
| Bar above the library while locked | Einige Videos öffnen sich nach einem kurzen Formular. |
| Button of that bar | Alle Videos öffnen |
| Player title when unlocking the whole library | Videothek öffnen |
| Text on the locked player | Füllen Sie das Formular aus, um das Video anzusehen |
| Play button (for screen readers) | Video abspielen |
| Message once unlocked (read by screen readers) | Danke! Alle Videos sind jetzt freigeschaltet. |
| Chapters heading | Kapitel |
| Files heading | Folien und Dateien |
| Copy link button | Link zu diesem Video kopieren |
| Once copied | Link kopiert |
| Close button (for screen readers) | Schließen |
| Button for videos that cannot play in the page | Auf der Seite des Videos ansehen |
| Screen reader hint for links that open a new tab | (öffnet in einem neuen Tab) |
| Editor note: no form | Wählen Sie ein Formular: Ohne Formular sind alle Videos frei zugänglich. |
| Editor note: videos without a date | Einige Videos haben kein Datum: Auf der veröffentlichten Seite sind sie ausgeblendet. Tragen Sie das Datum jedes Videos ein. |
| Editor note: no video link | Einige Videos haben noch keinen Videolink: Nach ihrem Datum zeigen sie „Aufzeichnung folgt“. |
Spanish (Español)
| Field | Text to paste |
|---|---|
| Heading | Videoteca |
| Introduction | Webinars, demos y charlas, listos para ver. Filtre por tema o busque por ponente. |
| Form heading | Acceda a toda la videoteca |
| Form text | Díganos adónde enviar el seguimiento y todos los vídeos se abrirán aquí mismo. |
| Search label | Buscar en los vídeos |
| Search placeholder | Título, ponente o tema |
| Topic filter | Tema |
| Format filter | Formato |
| Speaker filter | Ponente |
| Language filter | Idioma |
| Every value of a filter | Todos |
| Filters button (phones) | Filtros |
| Sort menu | Ordenar |
| Sort: newest first | Más recientes |
| Sort: oldest first | Más antiguos |
| Sort: by title | Título, de la A a la Z |
| Result count, one ({n} is the number) | {n} vídeo |
| Result count, several | {n} vídeos |
| No result | Ningún vídeo coincide con su búsqueda. |
| Button that clears the filters | Ver todos los vídeos |
| Show more button | Ver más vídeos |
| Empty library | Los vídeos aparecerán aquí pronto. |
| Minutes | min |
| Badge: upcoming session | Próximamente |
| Badge: live session | En directo |
| Badge: new video | Nuevo |
| Session over, no video yet | Grabación en breve |
| Registration button | Inscribirse |
| Join button | Unirse ahora |
| Add to calendar button | Añadir al calendario |
| Google Calendar | Google Calendar |
| Outlook.com | Outlook.com |
| Office 365 | Office 365 |
| Apple Calendar | Calendario de Apple (.ics) |
| Yahoo Calendar | Yahoo Calendar |
| Card of an open video | Ver |
| Card of a video behind the form | Acceso con el formulario |
| Bar above the library while locked | Algunos vídeos se abren tras un breve formulario. |
| Button of that bar | Abrir todos los vídeos |
| Player title when unlocking the whole library | Abrir la videoteca |
| Text on the locked player | Complete el formulario para ver el vídeo |
| Play button (for screen readers) | Reproducir el vídeo |
| Message once unlocked (read by screen readers) | ¡Gracias! Todos los vídeos están abiertos. |
| Chapters heading | Capítulos |
| Files heading | Diapositivas y archivos |
| Copy link button | Copiar el enlace de este vídeo |
| Once copied | Enlace copiado |
| Close button (for screen readers) | Cerrar |
| Button for videos that cannot play in the page | Ver en el sitio del vídeo |
| Screen reader hint for links that open a new tab | (se abre en una pestaña nueva) |
| Editor note: no form | Elija un formulario: sin él, todos los vídeos son de libre acceso. |
| Editor note: videos without a date | Algunos vídeos no tienen fecha: se ocultan en la página publicada. Indique la fecha de cada vídeo. |
| Editor note: no video link | Algunos vídeos aún no tienen enlace de vídeo: después de su fecha muestran «Grabación en breve». |
Support
Questions or a bug? Email support@airdatethemes.com, in English or French. We answer within two business days.
