Freshpaint
HomeLogin
  • Documentation
    • What is Freshpaint?
    • ⚕️HIPAA Mode
    • 🏗️Building Out Your Account
    • 🌐Overview of Features
    • Guides
      • 📡Add Autotrack to your website to collect data from your users
        • Installing the Freshpaint Javascript SDK
        • Installing the Freshpaint SDK with a Content Security Policy (CSP)
        • Installing the Freshpaint Javascript SDK with Server-Side Rendering (SSR) + React
        • Autocapture + React
        • Configuring a Destination
        • Labeling User Actions
        • How do I install Freshpaint with Typescript?
      • 🔁Send historical data to any destination with Time Machine
      • Next.js Quickstart Guide
      • Android Quickstart Guide
        • Installing the Freshpaint Android SDK
        • Configuring a Destination
        • Instrumenting Your App
      • iOS Quickstart Guide
        • Installing the Freshpaint iOS SDK
        • Configuring a Destination
        • Instrumenting Your App
      • React Native Quickstart Guide
        • Installing the Freshpaint React Native SDK
        • Configuring a Destination
        • Labeling User Actions
        • Configuring Property Capture
    • Setting up Properties
    • Setting up Your Destinations
      • Enabling and Disabling a Destination
      • Deleting a Destination
    • Setting up Your Events
    • User Identification
      • Designated Identify Properties
    • Maps
    • Analytics (Beta)
      • Web Analytics Dashboard
      • Campaigns
      • Service Lines
      • Data Glossary
    • Translations
    • Web Tracker Monitoring
      • Tracker Resolution Types
      • Historical Scans
  • Integrations
    • Destinations
      • Demand Side Platforms (DSPs)
        • Basis
          • Basis Quick Start Guide
          • Basis Reference
        • Google Campaign Manager 360
        • StackAdapt
          • StackAdapt Quick Start Guide
          • StackAdapt Reference
        • theTradeDesk
          • theTradeDesk Quick Start Guide
          • theTradeDesk Reference
          • theTradeDesk with CM360 Configuration Guide
        • Viant
          • Viant Quick Start Guide
          • Viant Reference
      • Direct Response Ads
        • Facebook Conversions API
          • Facebook Conversions API Quick Start Guide
          • Facebook Conversions API Reference
        • Google Ads Conversion API
          • Google Ads Conversion API Quick Start Guide
          • Google Ads Conversions API Reference
        • Google Ads
          • Google Ads Quick Start Guide
          • Google Ads Reference
        • LinkedIn Ads
          • LinkedIn Ads Quick Start Guide
          • LinkedIn Ads Reference
        • Microsoft Ads (formerly Bing Ads)
          • Microsoft Ads Quick Start Guide
          • Microsoft Ads Reference
          • Microsoft Ads Multi-Config Reference
        • Pinterest Ads (Beta)
          • Pinterest Ads Quick Start Guide
          • Pinterest Ads Reference
        • Pinterest Tag
        • Reddit Ads
          • Reddit Ads Quick Start Guide
          • Reddit Ads Reference
        • TikTok Ads
        • Twitter Ads
      • Data Activation
        • ActiveCampaign
          • ActiveCampaign Quick Start Guide
          • ActiveCampaign Reference
        • Amplitude
          • Amplitude Quick Start Guide
          • Amplitude Reference
        • Braze (formerly Appboy)
          • Braze Quick Start Guide
          • Braze Reference
        • Customer.io
          • Customer.io Quick Start Guide
          • Customer.io Reference
        • Freshsales
        • Google Analytics 4 Proxy
          • Google Analytics 4 Proxy Quick Start Guide
          • Google Analytics 4 Proxy Reference
          • Google Analytics 4 Proxy Advanced Tracking Configurations
        • Google Analytics 4 Server-Side
          • Google Analytics 4 Server-Side Quick Start Guide
          • Google Analytics 4 Server-Side Reference
        • Heap
        • Hotjar
        • HubSpot Cloud
        • HubSpot Web
        • impact.com
          • Impact.com Quick Start Guide
          • Impact.com Reference
        • Intercom
          • Intercom Quick Start Guide
          • Intercom Reference
        • Iterable
          • Iterable Quick Start Guide
          • Iterable Reference
        • June
        • Klaviyo
        • Mixpanel
          • Mixpanel Quick Start Guide
          • Mixpanel Reference
        • OneSignal
          • OneSignal Quick Start Guide
          • OneSignal Reference
        • Sendinblue
        • Sentry
        • Vero Cloud
        • Webengage
        • Webhooks
        • Woopra
        • Zendesk
      • Data Warehouses
        • Azure Warehouse Setup
        • BigQuery Warehouse Setup
        • Databricks Warehouse Setup
        • Postgres Warehouse Setup
        • Redshift Warehouse Setup
        • S3 Warehouse Setup
        • Snowflake Warehouse Setup
      • Consent Management
        • Osano
        • OneTrust
        • Custom Consent Manager
    • Sources
      • Web
        • Autotrack
        • Precision Tracking
      • CallRail
      • Invoca
      • Customer.io
      • Intercom
      • Mailchimp
      • React Native
      • SendGrid
      • Sendinblue
      • Server-Side
      • iOS
    • 🔷Google Tag Manager integration
      • Google Tag Manager migration
      • Quick Start Guide
    • 📺Freshpaint Video Platform
    • 🖼️Impression Pixel
  • Admin Panel
    • Event Library
      • Event Library Bulk Actions
      • Event Definition Filters
      • Event Tester
      • 🔁Time Machine
      • Visual Tagger
      • Advanced Options
        • Tag Manager
        • Disabling Target Text Capture
        • Cross Domain Tracking
    • Projects & Environments
    • Teams
      • Role-Based Access Control (RBAC)
    • Transformations
      • Standard Events
      • Modify Data
      • Modify User Data
      • SQL Transformations
    • 📈Destination Monitoring
    • 🔎Investigate: Testing and Debugging
      • Live View
      • Event Verification
  • Reference
    • Developer Docs
      • Freshpaint Web SDK Reference
      • Freshpaint Web SDK Options
      • Freshpaint React Native SDK Reference
      • Freshpaint iOS SDK Reference
      • Freshpaint Android SDK Reference
      • HTTP API
    • Frequently Asked Questions
      • How do I circumvent ad blockers?
      • Can Freshpaint track users across domains?
      • Can I install Freshpaint on a Chrome extension?
      • What properties are captured with my events?
      • How Do I Switchover From Segment?
      • How Do I Switch From Native Google Analytics to the Freshpaint Google Analytics Destination?
      • Where do I find my Environment ID?
      • Is Freshpaint GDPR & CCPA Compliant?
      • Can I use transformations to anonymize data for client-side destinations?
      • How do I QA or debug my data?
      • Why Do My Numbers Differ Across Different Tools?
      • Billing: How Does Freshpaint Determine MTUs?
      • Can I Use Freshpaint on Multiple Sites?
      • How Can I Export Data From Freshpaint?
      • How Does Freshpaint Identify Users?
      • How Many Events Should I Create?
      • What Should I Name My Events?
      • How do I track scroll depth?
      • What Data Does Freshpaint Collect?
        • Data Collected on Web
        • Data Collected on React Native
      • Does Freshpaint's Autotrack slow my site down?
      • Running Freshpaint with a Proxy
      • Should my Environment ID be treated as a sensitive key?
      • How Does Freshpaint Determine Session Count?
      • What is the difference between client-side and server-side connection mode?
      • What is a Proxy Integration?
      • Where can I view Freshpaint’s Status?
      • Does Freshpaint provide HIPAA audit logs?
      • Freshpaint Cookie Too Large
      • How does Freshpaint compare to server-side Google Tag Manager?
      • If a user re-installs my app, will Freshpaint generate a new device ID?
      • Why doesn't Freshpaint need a BAA before sending data to Google Ads and Facebook Ads?
      • What Implementation Services Does Freshpaint Offer?
      • Single Sign On (SSO) Setup
Powered by GitBook
On this page
  • What is Freshpaint Video?
  • Why is video important?
  • How can Freshpaint help?
  • Getting Started
  • Upload your videos to Freshpaint
  • Install the embedded videos onto your site
  • FAQ

Was this helpful?

  1. Integrations

Freshpaint Video Platform

Freshpaint's most reliable video solution: self-hosted for full control, stability, and HIPAA compliance.

PreviousQuick Start GuideNextImpression Pixel

Last updated 20 days ago

Was this helpful?

What is Freshpaint Video?

Freshpaint Video is a self-hosted video streaming solution for you to use in the place of a third party video hosting platform like YouTube. On a high level, it takes source videos uploaded from customers, encodes them into streaming formats, and serves them to your end-users via an embedded video player which can be dropped into your websites.

Why is video important?

Serving embedded videos from platforms on your websites without a Business Associate Agreement (BAA) may present a risk of violating HIPAA. This is because these upstream hosts collect data about the user when serving these videos.

Let's take YouTube for example. With the out-of-the-box YouTube embed, the end user’s computer will download the video directly from YouTube's servers. This will expose data about the user, such as their IP address, to YouTube. If the user is viewing a video about a specific medical condition, YouTube will have both an identifier (IP address) and health information about the user resulting in exposed Protected Health Information (PHI).

How can Freshpaint help?

By using Freshpaint Video to host your embedded videos, you can continue serving content on your website without sharing PHI or any unintended data with third-party hosting platforms. Since Freshpaint Video operates entirely within the Freshpaint technology ecosystem, all data collection remains securely covered under your BAA with Freshpaint.

Getting Started

Upload your videos to Freshpaint

First, you'll need to transfer your videos to the Freshpaint ecosystem. Follow the steps below using the Freshpaint Video management UI. If you have any questions or feedback regarding this process, please reach out to us support@freshpaint.io.

If your team doesn't have access to the source video files or anticipates any issues uploading them to Freshpaint, please reach out to us at support@freshpaint.io.

  1. Click "Upload Video" in the management UI

  2. Choose a file, click upload and wait for the file to finish uploading

  3. Give the video a title and description and add a custom thumbnail image, if desired. If you do not select a thumbnail image, one will be automatically generated which can be replaced at any time.

  4. Optionally, upload captions for the video. Captions must be in the .vtt file format. The label is a readable name represented in the video player. The language code for the caption must represent a valid .

Videos that have just been uploaded will initially be in the "processing" state while Freshpaint encodes the video and prepares it for use in web streaming. This typically takes 5–15 minutes depending on the size of the video.

That's it! Once your video files are uploaded to Freshpaint, all you'll need to do is install the embedded videos onto your application.

Install the embedded videos onto your site

This process may differ depending on your setup. For example, if your team is able to directly edit HTML, or use a CMS for this purpose, all they'd need to do is place the Freshpaint Video embed code that's provided on your application.

If you currently have a YouTube player or similar embedded on your site, you can simply replace the src in the iframe with the Freshpaint URL. This will maintain the same settings, such as player size.

You can retrieve the thumbnail for a video by adding /thumbnail to the end of the Freshpaint Video Link.

Please reach out to support@freshpaint.io for any assistance needed.

Automatically Selecting Captions

If you want captions or subtitles to show in your embedded player by default, you can do so by adding the following query parameter to the embed URL using the caption track's Language Code.

?caption=<lang_code>

# eg. English caption track
?caption=en

You can determine the available language codes for a given video on the video edit page in the captions section.

Autoplay and more

FAQ

What are supported file formats and encodings?

Are there request rate limits?

  • No, we currently have no throttling here. In practice all our customers have pretty low traffic; it's likely not something we want to be forever unlimited, but at the moment it's not costing enough to put anything into place.

Is there support for adaptive rendering, like based on network bandwidth, viewport etc.,?

  • Yes, we use ABR streaming via HLS and DASH, the two most common ABR formats on the web. We generate variable quality streams based on the upload quality (this is automatically done by MediaConvert), and our player selects the appropriate stream. We don't currently have functionality to manually switch stream quality.

Does Freshpaint use any CDN to deliver hosted videos?

  • Yes, AWS CloudFront.

Can the datalayer capture usage and interaction of video?

  • We don't currently expose any of this to customers directly (and building that got deprioritized internally), but we do offer integration with GA4 for forwarding interactions.

Is it possible to add/edit metadata for videos and what is the current schema. Can custom metadata attributes be added?

  • The video's title, description, and thumbnail are included as metadata in the player HTML. The list of tags we populate is: "title" "description" "og:url" "og:title" "og:description" "og:video:url" "og:video:secure_url" "og:updated_time" "og:image" "og:image:secure_url" "og:image:type" "twitter:player" "twitter:url" "twitter:title" "twitter:description" "twitter:image" (note that many of these are populated with identical values), which is sufficient for the majority of web crawlers, social media embeds, and CMS platforms to recognize the video. We do not support customizing or adding additional metadata tags to the video beyond the title, description, and thumbnail.

Are you able to send video engagement events to Google Analytics 4?

Our video player supports all boolean attributes natively supported in , including autoplay, muted, loop, and more. To take advantage of this, simply add the boolean parameter as a query parameter to the video URL (for example https://freshpaint-video.com/<env_id>/<video_id>?autoplay=1).

Modern browsers have special rules about when videos can be automatically played (see more in the ). Most follow the rule of only allowing autoplay if the video is muted by default. To set that up, append ?autoplay=1&muted=1at the end of your embedded video URL.

We support all video encodings supported by AWS MediaConvert (). The container extensions we look for on upload are ".3gp", ".3g2", ".wmv", ".avi", ".flv", ".mkv", ".mov", ".mp4", ".mpeg", ".mpg", ".mp1", ".mpv", ".mxf", ".webm".

Yes, engagement events such as video_start, video_progress, and video_complete for videos hosted in Freshpaint can be optionally enabled to be sent to GA4. Please to learn how to configure the GA4 destination to receive these events.

📺
HTML5
Mozilla Autoplay Guide
https://docs.aws.amazon.com/mediaconvert/latest/ug/supported-containers-codecs-details.html
click here
IETF language tag