Skip to content

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

  1. Buy Airdate Video Library Pro on the HubSpot Template Marketplace (39 $, one payment, updates included). It is installed in the HubSpot account you choose.
  2. Open a website page, landing page or blog post in the editor.
  3. In the Add panel, search for Airdate Video Library Pro and drag it where you want the library.
  4. 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-pages in …#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:

MomentOn 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 linkThe 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 VideoObject data for each video (title, summary, thumbnail, date, duration, player address) and Event data 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/… or loom.com/embed/….
  • Wistia: yourname.wistia.com/medias/…, wi.st/medias/… or an embed link.
  • Video files: an address ending in .mp4 or .webm (also .m4v and .mov if 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)

FieldText to paste
HeadingVidéothèque
IntroductionWebinaires, démos et conférences, prêts à regarder. Filtrez par thème ou cherchez un intervenant.
Form headingAccéder à toute la vidéothèque
Form textDites-nous où envoyer la suite, et toutes les vidéos s’ouvrent ici même.
Search labelRechercher dans les vidéos
Search placeholderTitre, intervenant ou thème
Topic filterThème
Format filterFormat
Speaker filterIntervenant
Language filterLangue
Every value of a filterTous
Filters button (phones)Filtres
Sort menuTrier
Sort: newest firstLes plus récentes
Sort: oldest firstLes plus anciennes
Sort: by titleTitre, de A à Z
Result count, one ({n} is the number){n} vidéo
Result count, several{n} vidéos
No resultAucune vidéo ne correspond à votre recherche.
Button that clears the filtersVoir toutes les vidéos
Show more buttonVoir plus de vidéos
Empty libraryLes vidéos apparaîtront bientôt ici.
Minutesmin
Badge: upcoming sessionÀ venir
Badge: live sessionEn direct
Badge: new videoNouveau
Session over, no video yetReplay à venir
Registration buttonS’inscrire
Join buttonRejoindre
Add to calendar buttonAjouter à l’agenda
Google CalendarGoogle Agenda
Outlook.comOutlook.com
Office 365Office 365
Apple CalendarCalendrier Apple (.ics)
Yahoo CalendarYahoo Agenda
Card of an open videoRegarder
Card of a video behind the formAccès par le formulaire
Bar above the library while lockedCertaines vidéos s’ouvrent après un court formulaire.
Button of that barOuvrir toutes les vidéos
Player title when unlocking the whole libraryOuvrir la vidéothèque
Text on the locked playerRemplissez 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 headingChapitres
Files headingDiapositives et fichiers
Copy link buttonCopier le lien de cette vidéo
Once copiedLien copié
Close button (for screen readers)Fermer
Button for videos that cannot play in the pageRegarder 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 formChoisissez un formulaire : sans formulaire, toutes les vidéos sont en libre accès.
Editor note: videos without a dateCertaines 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 linkCertaines vidéos n’ont pas encore de lien vidéo : après leur date, elles affichent « Replay à venir ».

German (Deutsch)

FieldText to paste
HeadingVideothek
IntroductionWebinare, Demos und Vorträge zum Ansehen. Filtern Sie nach Thema oder suchen Sie nach einer Person.
Form headingZugang zur ganzen Videothek
Form textSagen Sie uns, wohin wir die Unterlagen senden dürfen, und alle Videos öffnen sich direkt hier.
Search labelVideos durchsuchen
Search placeholderTitel, Person oder Thema
Topic filterThema
Format filterFormat
Speaker filterPerson
Language filterSprache
Every value of a filterAlle
Filters button (phones)Filter
Sort menuSortieren
Sort: newest firstNeueste zuerst
Sort: oldest firstÄlteste zuerst
Sort: by titleTitel, A bis Z
Result count, one ({n} is the number){n} Video
Result count, several{n} Videos
No resultKein Video passt zu Ihrer Suche.
Button that clears the filtersAlle Videos zeigen
Show more buttonWeitere Videos
Empty libraryDie Videos erscheinen hier in Kürze.
MinutesMin.
Badge: upcoming sessionDemnächst
Badge: live sessionJetzt live
Badge: new videoNeu
Session over, no video yetAufzeichnung folgt
Registration buttonAnmelden
Join buttonJetzt teilnehmen
Add to calendar buttonZum Kalender hinzufügen
Google CalendarGoogle Kalender
Outlook.comOutlook.com
Office 365Office 365
Apple CalendarApple Kalender (.ics)
Yahoo CalendarYahoo Kalender
Card of an open videoAnsehen
Card of a video behind the formZugang per Formular
Bar above the library while lockedEinige Videos öffnen sich nach einem kurzen Formular.
Button of that barAlle Videos öffnen
Player title when unlocking the whole libraryVideothek öffnen
Text on the locked playerFü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 headingKapitel
Files headingFolien und Dateien
Copy link buttonLink zu diesem Video kopieren
Once copiedLink kopiert
Close button (for screen readers)Schließen
Button for videos that cannot play in the pageAuf der Seite des Videos ansehen
Screen reader hint for links that open a new tab(öffnet in einem neuen Tab)
Editor note: no formWählen Sie ein Formular: Ohne Formular sind alle Videos frei zugänglich.
Editor note: videos without a dateEinige Videos haben kein Datum: Auf der veröffentlichten Seite sind sie ausgeblendet. Tragen Sie das Datum jedes Videos ein.
Editor note: no video linkEinige Videos haben noch keinen Videolink: Nach ihrem Datum zeigen sie „Aufzeichnung folgt“.

Spanish (Español)

FieldText to paste
HeadingVideoteca
IntroductionWebinars, demos y charlas, listos para ver. Filtre por tema o busque por ponente.
Form headingAcceda a toda la videoteca
Form textDíganos adónde enviar el seguimiento y todos los vídeos se abrirán aquí mismo.
Search labelBuscar en los vídeos
Search placeholderTítulo, ponente o tema
Topic filterTema
Format filterFormato
Speaker filterPonente
Language filterIdioma
Every value of a filterTodos
Filters button (phones)Filtros
Sort menuOrdenar
Sort: newest firstMás recientes
Sort: oldest firstMás antiguos
Sort: by titleTítulo, de la A a la Z
Result count, one ({n} is the number){n} vídeo
Result count, several{n} vídeos
No resultNingún vídeo coincide con su búsqueda.
Button that clears the filtersVer todos los vídeos
Show more buttonVer más vídeos
Empty libraryLos vídeos aparecerán aquí pronto.
Minutesmin
Badge: upcoming sessionPróximamente
Badge: live sessionEn directo
Badge: new videoNuevo
Session over, no video yetGrabación en breve
Registration buttonInscribirse
Join buttonUnirse ahora
Add to calendar buttonAñadir al calendario
Google CalendarGoogle Calendar
Outlook.comOutlook.com
Office 365Office 365
Apple CalendarCalendario de Apple (.ics)
Yahoo CalendarYahoo Calendar
Card of an open videoVer
Card of a video behind the formAcceso con el formulario
Bar above the library while lockedAlgunos vídeos se abren tras un breve formulario.
Button of that barAbrir todos los vídeos
Player title when unlocking the whole libraryAbrir la videoteca
Text on the locked playerComplete 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 headingCapítulos
Files headingDiapositivas y archivos
Copy link buttonCopiar el enlace de este vídeo
Once copiedEnlace copiado
Close button (for screen readers)Cerrar
Button for videos that cannot play in the pageVer 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 formElija un formulario: sin él, todos los vídeos son de libre acceso.
Editor note: videos without a dateAlgunos vídeos no tienen fecha: se ocultan en la página publicada. Indique la fecha de cada vídeo.
Editor note: no video linkAlgunos 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.