Product documentation

Documentation

Guides for uploading, embedding, searching, and managing video.

Add videos

Drag a file onto the grid. Or click Upload in the top-right.

Drag and drop

  1. Click and hold the file you want to upload
  2. Drag it onto the Skiv grid and drop it

Upload button

  1. On the top right, click the Upload button
  2. Select your file in the file explorer window and confirm

Record

Record your screen or camera straight into your library.

Record video or screen

  1. Click the Record button
  2. Choose what you want to record: Screen or Camera
  3. Provide the necessary browser permissions
  4. Preview your screen, then click Record to start recording
  5. To stop recording, click Stop
  6. Click Upload to start uploading

Account

Manage your profile, password, payment method, and plan.

Change username

  1. Click the user icon in the top-right, then Settings
  2. Edit the first line, under NAME

Change channel URL

  1. Click the user icon in the top-right, then Settings
  2. Edit the second line, under USERNAME, where it says Skiv/yourusername

Change password

  1. Click the user icon in the top-right, then Settings
  2. In the PASSWORD row, on the right, click Change
  3. Enter the current and new passwords
  4. Click Save

Reset password

  1. On Skiv, click Sign in
  2. In sign-in modal, click Forgot your password?
  3. Enter the email of the account
  4. Click Continue
  5. In your inbox, you will receive an email. In it, click Reset password
  6. Enter the new password
  7. Click Reset password

Add / change card

  1. Click the user icon in the top-right, then Settings
  2. On the sidebar, click Plan
  3. Under Payment method click Add new card
  4. Fill out the card details, and click Add card to submit

Delete your account

  1. Click the user icon in the top-right, then Settings
  2. On the sidebar, click Plan
  3. Click Delete
  4. Click Request deletion
  5. In your inbox, you will receive an email to confirm deletion. In it, click Permanently delete account

Stop auto-billing

  1. Click the user icon in the top-right, then Settings
  2. On the sidebar, click Plan
  3. Remove all cards / payment methods by hovering over each card and clicking the remove icon

Basic operations

Rename, download, share, and delete videos. Update visibility and subtitles.

Studio mode

Studio is where you manage every video and collection, regardless of visibility.

Switch to Studio from the user icon in the top-right.

Rename a video

  1. Select it
  2. In the bottom-bar, click Rename
  3. Enter the new name
  4. Click Save

Download a video

  1. Select it
  2. In the bottom-bar, click Download

Change visibility

  1. Select it
  2. In the bottom-bar, click Change visibility
  3. Select the desired option

Private: only the owner can view.

Hidden: only embedded, not visible on Skiv.

Unlisted: anyone with the link can view.

Password: anyone with the password can view.

Public: anyone can view.

Delete a video

  1. Select it
  2. In the bottom-bar, click Delete
  3. Confirm with Delete video

Add subtitles

  1. In the video page, click the menu icon
  2. Click Manage subtitles
  3. Click Upload subtitles and select the desired file
  4. Rename the subtitles to the correct language

Change cover/thumbnail

  1. In the video page, click the menu icon
  2. Click Change cover
  3. Upload an image, or enter a timestamp to use that frame as the cover (e.g. 0:20)
  4. Click Set cover

Portals

Branded subscription pages for your videos. Add tiers, set pricing, publish.

Create a Portal

  1. Open Monetize in the sidebar
  2. In the top-right, click Create new Portal
  3. Enter a name and description for the Portal
  4. Select the desired collection from the dropdown
  5. Click Create

Monetize Portals with subscriptions

  1. Open Portals in the sidebar
  2. Click the menu icon of the Portal you want to monetize
  3. Click Edit
  4. Click Add subscription
  5. Name the subscription tier - if left empty, the default will be "Tier 1"
  6. Set your monthly and yearly pricing - if left empty, this tier will be free by default. To not include monthly or yearly billing options, leave the corresponding field empty.
  7. Describe what the tier includes in the description box (optional)
  8. Click Create
  9. Click Save & Update

Edit a Portal

  1. Open Portals in the sidebar
  2. Click the menu icon of the Portal you want to edit
  3. Click Edit
  4. Click Add subscription
  5. Edit title, description, logo, or subscriptions
  6. Click Save & Update

Collections

Group videos into collections. Share them with anyone.

Create a collection

  1. Open Collections in the sidebar
  2. In the top-right, click New collection
  3. Enter the collection name
  4. Select desired visibility (default is Private)
  5. Click Create

Add videos

  1. Open Videos in the sidebar
  2. Select the videos you want to add
  3. In the bottom-bar, click Add to collection
  4. Click the collection you want to add the videos to

Change visibility

  1. Open Collections in the sidebar
  2. Click the Collection you want to make public or private
  3. Inside the collection, on the top-left next to the title, click the visibility icon
  4. Select the desired visibility

Private: only the owner can view.

Hidden: only embedded, not visible on Skiv.

Unlisted: anyone with the link can view.

Password: anyone with the password can view.

Public: anyone can view.

Note: collection visibility does not affect video or subcollection visibility. Example 1: you have an unlisted video in a public collection, the video will not be visible in the collection. Example 2: you have a public video in an unlisted collection, the video will be visible in the collection.

Create subcollection

  1. Go to collection in which you want to add a subcollection
  2. Click New collection in the topbar
  3. Give the new collection a name
  4. Select the desired visibility
  5. Click Create

Move subcollection

Click and drag collections and subcollections to reorder them.

  1. Click the collection you want to move
  2. Drag it over the collection you want to add it to
  3. When the destination collection is highlighted, drop it

Channel

Your channel gathers your public videos and collections in one place. Private, Unlisted, and Hidden videos stay off the channel.

Go to your channel

  1. When logged in, click the user icon to open the Account options dropdown
  2. Click Channel

Customize channel

  1. When in your Channel, click Edit channel in the top-right
  2. Click and edit the text field you want to edit
  3. Click Stop editing in the top-right
  1. When in your Channel, click Edit channel in the top-right
  2. Click and edit the featured video, where it says Change featured video
  3. Select the video you wish to set as featured, and click Set as featured video in the bottom-right of the modal
  4. Click Stop editing in the top-right

Immersive view

A fullscreen, cinematic layout for a collection. Share it with people who don't have a Skiv account.

Open immersive view

  1. Open Collections in the sidebar
  2. Click the Collection you want
  3. In the top-right, click Immersive view

Share immersive view

  1. Open Collections in the sidebar
  2. Click the Collection you want
  3. In the top-right, click Immersive view
  4. Copy the URL in the address bar. If the Collection isn't private, anyone with the link will be able to view it.

Share

Share by link, embed, or direct file. Restrict by domain, region, or expiring token.

Share a video

  1. Select the video
  2. In the bottom-bar, click Share
  3. If the video is Private, you'll need to change its visibility to Public or Unlisted
  4. Click Copy or select and copy the URL in the address box

Get embed code

  1. Select the video
  2. In the bottom-bar, click Share
  3. Click the embed icon
  4. Click Copy

Customize player

  1. Select the video
  2. In the bottom-bar, click Share
  3. Click the embed icon
  4. Click Advanced embed options
  5. Customize the player using the panel on the right-side
  6. Click Copy

Set domain restrictions

  1. Select the video
  2. In the bottom-bar, click Share
  3. Click the embed icon
  4. Click Configure domain restrictions
  5. Input your domains and press Add to add them to the list of approved domains

Share link to video file

  1. Select the video
  2. In the bottom-bar, click Share
  3. Click the video file icon
  4. Click Copy for the file you want to share

Share expiring link Plus Plan

  1. Select the video
  2. In the bottom-bar, click Share
  3. Click the embed icon
  4. Click Configure video restrictions
  5. Click Limited access
  6. If you haven't already, click Set video visibility to Password
  7. Configure the link and click Add link

Set geo-restrictions Plus Plan

  1. Select the video
  2. In the bottom-bar, click Share
  3. Click the embed icon
  4. Click Configure video restrictions
  5. Click Geographical
  6. Click Add region to add them to the EXCLUSIVE TO or BLOCKED IN lists

oEmbed

Skiv supports oEmbed. Paste a regular Skiv link into any oEmbed-compatible site — social platforms, website builders — and it renders the embedded video.

Check oEmbed compatibility

Label & Edit

Label anything in a video. Edit anything Skiv labeled.

Speech

Edit transcript

  1. Open the video you want to edit
  2. In the panel on the right, go to the Speech tab
  3. On the bottom-right, click Edit
  4. Click the paragraph you want to edit, making it editable
  5. Type the text
  6. In the timeline under the video, move the handles to set the start and end times of the paragraph you have selected
  7. Click Done

Click the play-segment icon to preview the segment you have selected.

Use the spectrogram, film, and sound icons to switch between timeline styles.

Use your mouse's scrollwheel or use pinch to zoom in and out on the timeline.

Add to transcript

  1. Open the video you want to edit
  2. In the panel on the right, go to the Speech tab
  3. On the bottom-right, click Edit
  4. Use the timeline below the video to navigate to where you want to add a new paragraph
  5. Click Add
  6. Type the text
  7. In the timeline under the video, move the handles to set the start and end times of the new paragraph
  8. Click Done

Click the play-segment icon to preview the segment you have selected.

Use the spectrogram, film, and sound icons to switch between timeline styles.

Use your mouse's scrollwheel or use pinch to zoom in and out on the timeline.

People

Edit people

  1. Open the video you want to edit
  2. In the panel on the right, go to the People tab
  3. Click on any person's name and type to rename it
  4. Click Save

Found the same person multiple times? Give them the same name and they will be merged into one.

Hover over a picture and click the delete icon to remove that person from the list.

Objects

Label objects

  1. Open the video you want to edit
  2. In the panel on the right, go to the Objects tab
  3. On the bottom-right, click Edit
  4. Click-and-drag over the video to draw a box around the object you want to label
  5. Give the object a name by clicking the box header
  6. In the timeline under the video, move the handles to set when the object comes in and out of view
  7. Click Done

Click the play-segment icon to preview the segment you have selected.

Use the spectrogram, film, and sound icons to switch between timeline styles.

Use your mouse's scrollwheel or use pinch to zoom in and out on the timeline.

Edit an object label

  1. Open the video you want to edit
  2. In the panel on the right, go to the Objects tab
  3. On the bottom-right, click Edit
  4. In the panel on the right, click the name of the object you want to edit to navigate to the next time it shows up
  5. Rename the object by clicking the box header or resize its bounding-box by dragging its corners
  6. In the timeline under the video, move the handles to set when the object comes in and out of view
  7. Click Done

Click the play-segment icon to preview the segment you have selected.

Use the spectrogram, film, and sound icons to switch between timeline styles.

Use your mouse's scrollwheel or use pinch to zoom in and out on the timeline.

Text

Label text

  1. Open the video you want to edit
  2. In the panel on the right, go to the Text tab
  3. On the bottom-right, click Edit
  4. Click-and-drag over the video to draw a box around the text you want to label
  5. Give the text a name by clicking the box header
  6. In the timeline under the video, move the handles to set when the text comes in and out of view
  7. Click Done

Click the play-segment icon to preview the segment you have selected.

Use the spectrogram, film, and sound icons to switch between timeline styles.

Use your mouse's scrollwheel or use pinch to zoom in and out on the timeline.

Edit a text label

  1. Open the video you want to edit
  2. In the panel on the right, go to the Text tab
  3. On the bottom-right, click Edit
  4. In the panel on the right, click the preview of the text you want to edit to navigate to when it shows up
  5. Rename the text by clicking the box header or resize its bounding-box by dragging its corners
  6. In the timeline under the video, move the handles to set when the text comes in and out of view
  7. Click Done

Click the play-segment icon to preview the segment you have selected.

Use the spectrogram, film, and sound icons to switch between timeline styles.

Use your mouse's scrollwheel or use pinch to zoom in and out on the timeline.

Actions

Label actions

  1. Open the video you want to edit
  2. In the panel on the right, go to the Actions tab
  3. On the bottom-right, click Edit
  4. Click-and-drag over the video to draw a box around the action you want to label
  5. Give the action a name by clicking the box header
  6. In the timeline under the video, move the handles to set when the action starts and when it ends
  7. Click Done

Click the play-segment icon to preview the segment you have selected.

Use the spectrogram, film, and sound icons to switch between timeline styles.

Use your mouse's scrollwheel or use pinch to zoom in and out on the timeline.

Edit an action label

  1. Open the video you want to edit
  2. In the panel on the right, go to the Actions tab
  3. On the bottom-right, click Edit
  4. In the panel on the right, click the name of the action you want to edit to navigate to the next time it shows up
  5. Rename the action by clicking the box header or resize its bounding-box by dragging its corners
  6. In the timeline under the video, move the handles to set when the action starts and when it ends
  7. Click Done

Click the play-segment icon to preview the segment you have selected.

Use the spectrogram, film, and sound icons to switch between timeline styles.

Use your mouse's scrollwheel or use pinch to zoom in and out on the timeline.

Sounds

Label sounds

  1. Open the video you want to edit
  2. In the panel on the right, go to the Sounds tab
  3. On the bottom-right, click Edit
  4. Click Add
  5. Give the sound a name
  6. In the timeline under the video, move the handles to set when the sound starts and when it ends
  7. Click Done

Click the play-segment icon to preview the segment you have selected.

Use the spectrogram, film, and sound icons to switch between timeline styles.

Use your mouse's scrollwheel or use pinch to zoom in and out on the timeline.

Edit a sound label

  1. Open the video you want to edit
  2. In the panel on the right, go to the Sounds tab
  3. On the bottom-right, click Edit
  4. In the panel on the right, click the name of the sound you want to edit to navigate to the next time it can be heard
  5. Rename the sound by clicking its label at the bottom-left of the video
  6. In the timeline under the video, move the handles to set when the sound starts and when it ends
  7. Click Done

Click the play-segment icon to preview the segment you have selected.

Use the spectrogram, film, and sound icons to switch between timeline styles.

Use your mouse's scrollwheel or use pinch to zoom in and out on the timeline.

Cut clips

Pull highlight clips out of any video. Share the moments, not the full file.

Cut a clip from a video

  1. Open the video you want cut a clip from
  2. Under the bottom-right of the video, click the scissors icon
  3. In the timeline under the video, move the handles to set the start and end times of the new clip
  4. Set the clip's title, description, and visibility in the right panel
  5. Click Save

Click the play-segment icon to preview the segment you have selected.

Use the spectrogram, film, and sound icons to switch between timeline styles.

Use your mouse's scrollwheel or use pinch to zoom in and out on the timeline.

Player

HTML5 video player. 4K DASH/HLS streaming, Chromecast and AirPlay, in-video search, and responsive layout.

Video search

  1. Click Search at the top-right of the player
  2. Enter your query
  3. Results will show up on the timeline
  4. Click the result indicators, or on the navigation arrows, to navigate between results
Searching in player

Subtitles

  1. Click the settings icon at the bottom-right of the player
  2. Click Subtitles and select the subtitles you want
Selecting subtitles

Video playback quality

  1. Click the settings icon at the bottom-right of the player
  2. Click Quality and select the resolution you want
Selecting video quality

Video playback speed

  1. Click the settings icon at the bottom-right of the player
  2. Click Speed and select the speed you want
Playback speed

Chromecast / AirPlay

  1. Click the Chromecast or AirPlay icon in the bottom-right of the player
  2. Select the device to which you want to cast

Chromecast is only available on Chrome browsers, with a Chromecast device on the same WiFi network.

AirPlay is only available on Apple devices, with an AirPlay device on the same WiFi network.

Chromecast

Video chapters

  1. Add chapters by typing the timestamps followed by chapter titles in the video description, one per line. Start with 0:00 and keep chapters at least 8 seconds long. For example:
    0:00 Intro
    3:05 Phase One
  2. Place your cursor over the timeline to preview the chapter names
  3. Click the timestamps to navigate to the beginning of each chapter
Video chapters

Keyboard controls

[space] / kPlay / Pause
lSkip 10 seconds
jBack 10 seconds
.Next frame
,Previous frame
Skip 5 seconds
Back 5 seconds
Volume up
Volume down
fToggle fullscreen
sFocus search field

Player customization

Style the player to match your site.

Built-in options cover the basics. For anything else, inject your own CSS:

  1. Use the JS or iframe methods.
  2. Customize the elements you wish to change using CSS.
  3. For standard embed: Add a data-css attribute with your CSS to the player <div>.

    <div data-css="your_css_here" data-video="y8zH87z" class="skiv-video-player"></div>
    <script src="https://skiv.com/static/js/embed-player.min.js"></script>

    For iframe embed: Add a css parameter to the iframe URL.

    <iframe src="https://skiv.com/embed/y8zH87z?css=your_css_here"
            width="576" height="324" frameborder="0" allowfullscreen></iframe>

    For JS embed: Place the CSS inside the css parameter.

    SkivPlayer({css: 'your_css_here', container: '#video-player', video: 'sLFaX4p'});

Examples:

Centered play button (JS)

<div id="video-player"></div>
<script src="https://skiv.com/static/js/embed-player.min.js"></script>
<script>
  SkivPlayer({
    container: '#video-player',
    video: 'sLFaX4p',
    style: 'minimal',
    logo: false,
    search: false,
    title: false,
    coverPlayPosition: 'center',
  });
</script>

Centered play button (iframe)

<iframe src="https://skiv.com/embed/sLFaX4p?logo=0&style=minimal&cover_play_position=center"
        width="576" height="324" frameborder="0" allowfullscreen></iframe>
<div id="video-player"></div>
<script src="https://skiv.com/static/js/embed-player.min.js"></script>
<script>
  SkivPlayer({
    container: '#video-player',
    video: 'sLFaX4p',
    logo: 'https://upload.wikimedia.org/wikipedia/commons/thumb/a/a3/NASA_Worm_logo.svg/2560px-NASA_Worm_logo.svg.png',
  });
</script>

Player with accent color + logo (JS)

<div id="video-player"></div>
<script src="https://skiv.com/static/js/embed-player.min.js"></script>
<script>
  SkivPlayer({
    container: '#video-player',
    video: 'y8zH87z',
    links: false,
    logo: 'https://example.com/your-logo.png',
    autoplay: true,
    volume: 0,
    css: '.player-title{color:#fe4900!important;} ...'
  });
</script>

Player with ads (JS)

<div id="video-player"></div>
<script src="https://skiv.com/static/js/embed-player.min.js"></script>
<script>
  SkivPlayer({
    container: '#video-player',
    video: 'RgLyiLG',
    autoplay: true,
    volume: 0,
    ad: [
      'https://muse.advertserve.com/servlet/vast3/media?mid=2&pid=auto&random=12345',
    ],
  });
</script>

No user controls (iframe)

<iframe src="https://skiv.com/embed/sLFaX4p?links=0&autoplay=1&volume=0&style=no-controls"
        width="576" height="324" frameborder="0" allowfullscreen></iframe>

Player integrations

Embed in Wordpress

WordPress logo

The standard embed code works on Wordpress. For hosts that block custom scripts, check Use iframe in the embed modal for an iframe version.

  1. Go to the Page or Post in which you want to embed the video
  2. Type / or click the add icon
  3. Select the Custom HTML block
  4. Paste your embed code

The Skiv WordPress plugin is also available on the WordPress directory, or download it directly. It converts pasted video links into embeds and adds shortcodes.

Some WordPress hosts charge extra for embedding. Self-host to avoid that fee.

Embed in Squarespace

Squarespace logo

The Squarespace free plan only accepts iframe embeds. Check Use iframe in the embed modal. Paid plans also support the standard embed code.

  1. Go to the Page in which you want to embed the video
  2. Click Edit
  3. Click the add icon at the top of each section
  4. Select the Code block
  5. Replace the placeholder content with your embed code
  6. Click Apply

Embed in Wix

Wix logo
  1. Go to the Page in which you want to embed the video
  2. Click the add icon on the left
  3. In the pop-up menu, select Embed > Custom Embeds > Embed a Widget
  4. Click Enter code, above the new block
  5. Replace the placeholder content with your embed code
  6. Paste your code and click Update
  7. Resize the block to your liking

Embed in Kajabi

Kajabi logo
  1. Go to the Page in which you want to embed the video
  2. On the panel on the left, click Add Content block
  3. On the panel on the left, click Video Embed block
  4. Replace the code in the Embed Code box with your own
  5. Click Save

Embed in MemberVault

MemberVault logo
  1. Go to a Lesson page
  2. Set the Video Type to Other
  3. Paste your embed code in the Video ID field
  4. Scroll to the bottom and click Save Lesson

Embedded Player

Drop the Skiv player into any page. Configure it to taste.

Get video embed code

  1. Select the video
  2. In the bottom-bar, click Share
  3. Click the embed icon
  4. Click Copy to copy the embed code

Set call-to-action screen Plus Plan

  1. Select the video
  2. In the bottom-bar, click Share
  3. Click the embed icon
  4. Click Advanced embed options
  5. Scroll to CALL TO ACTION section
  6. Fill in the input fields
  7. Click Copy to copy the embed code

Custom usage

Two lines of code get the player on your page:

Standard
<div class="skiv-video-player" data-video="y8zH87z" data-width="600"></div>
<script src="https://skiv.com/static/js/embed-player.min.js"></script>
iframe
<iframe src="https://skiv.com/embed/y8zH87z?start=20&volume=75"
        width="576" height="324" frameborder="0" allowfullscreen></iframe>

For the standard method, set data-video to the video ID (visible in the address bar on Skiv).

Include the <script> tag once per page, ideally in <head> or at the end of <body>.

Set size with data-width or data-height. Default is 640x360.

Standard embed attributes
data-videoVideo ID.
data-widthPlayer width. Can be provided as pixels (e.g. "560") or a relative value (e.g. "100%").
data-heightPlayer height. Can be provided as pixels (e.g. "560") or a relative value (e.g. "100%").
data-autoplaySet to "1" to play the video automatically. Set to "visible" to play when video enters the viewport.
data-loopSet to "1" to restart the video after it finishes.
data-startThe time at which the video should start playing.
data-resumeSet to "1" to seek back to the last viewing position when the video loads.
data-volumeSet volume to a value between 0 and 100.
data-consentSet to "1" to indicate the viewer has already given consent to view sensitive content.
data-shareSet to "1" to show a share icon in the player.
data-subtitlesEnable subtitles by default, set to "auto" to show automatically generated subtitles, or set to the name of uploaded subtitles. To show the auto-translated subtitles by default, use Chinese, French, German, Portuguese, or Spanish.
data-shortcutsSet to "0" to disable keyboard shortcuts.
data-downloadSet to "1" to enable downloads.
data-controlsEnable or disable player controls. A comma-separated list of controls prepended with plus or minus signs. E.g. "-fullscreen,+subtitles" will show a subtitle toggle and hide the fullscreen toggle. Includes fullscreen, subtitles, volume, settings, chromecast, and airplay.
data-playlistEither a collection ID or a comma-separated list of video IDs to play in a sequence.
data-ldSet to "0" to disable Linked Data markup. Enabled by default. This helps with SEO.
data-adInclude VAST / VPAID / VMAP tags to show your own ads.

Embedding on Wordpress, Squarespace, or Wix pages? See Player integrations.

Advanced usage

For programmatic control, use the JavaScript library. Create players, wire up events, call methods.

Include the embedded player script, then instantiate:

<div id="your-container"></div>
<script src="https://skiv.com/static/js/embed-player.min.js"></script>
<script>
  const player = SkivPlayer({
    container: '#your-container',
    video: 'y8zH87z',
    width: 400
  });
</script>

The returned player object exposes playback controls. Pause the video with player.pause().

SkivPlayer parameters
containerHTML element that will contain the player.
autoplaySet to true to play the video automatically. Set to 'visible' to play when video enters the viewport.
loopSet to true to restart the video after it finishes.
startTime at which the video should start playing.
resumeSet to true to seek back to the last viewing position when the video loads.
volumeSet volume to a value between 0 and 100.
widthDesired player width. Can be provided as an integer (in pixels) or a relative value as a string (e.g. '100%').
heightDesired player height. Can be provided as an integer (in pixels) or a relative value as a string (e.g. '100%').
titleSet to false to hide the title.
searchSet to false to hide the search functionality.
linksSet to false to disable links to Skiv.
sizingSet to 'fill' to fill the entire container's size and introduce black bars as necessary. Set to 'fit' to span the parent container while maintaining the player's aspect ratio. Set to 'cover' to span the parent container disregarding the player's aspect ratio. When using these values make sure that the container's parent has explicit width and height that don't depend on the player. If sizing is set, width and height will be ignored. Default: null.
logoSet to false to hide branding on the player.
styleSet to minimal for minimal player controls, and to no-controls to hide controls entirely.
consentSet to true to indicate the viewer has already given consent to view sensitive content.
linkedDataSet to false to disable Linked Data markup. Enabled by default.
shareSet to true to show a share icon in the player.
subtitlesEnable subtitles by default, set to 'auto' to show automatically generated subtitles, or set to the name of uploaded subtitles.
shortcutsSet to false to disable keyboard shortcuts.
downloadSet to true to enable downloads.
controlsEnable or disable player controls. A list of control names prepended with plus or minus signs. E.g. ["-fullscreen", "+subtitles"] will show a subtitle toggle and hide the fullscreen toggle.
playlistEither a collection ID or a list of video IDs to play in a sequence.
adInclude VAST / VPAID / VMAP tags to show your own ads.
SkivPlayer methods
play()Play the video.
pause()Pause the video.
seek(time)Skip to the specified time.
search(query, seek)Search using the provided query. Set the seek argument to true to seek the video to the first result after performing the search.
on(event, listener)Set up a function that will be called when the specified event happens.
off(event, listener)Remove a previously set up event listener.
setVideo(video)Load the video into the player from the given video ID.
setSpeed(rate)Set the rate at which to play the video.
setVolume(volume)Set volume to a value between 0 and 100.
SkivPlayer events
playVideo is playing.
pauseVideo is paused.
endedVideo has ended.
metadataPlayer metadata (such as title, description, width, and height) is ready. The metadata object will be passed to the listener as the first argument.
timeupdateEvent fired when the playback time of the player changes. The current playback time in seconds will be passed to the listener as the first argument.
searchA search is performed. The query string will be passed as the first argument.
speedPlayback speed changed. The new speed is passed as the only argument.

For example:

player.on('metadata', metadata => {
  document.getElementById('video-title').innerText = metadata.title;
  document.getElementById('video-description').innerText = metadata.description;
});

Embedding video data

Embed video metadata — description, transcript, detected text — directly on your page. Renders full video pages and powers search engine optimization for video.

<div class="skiv-video-data" data-video="FTBViRx" data-content="description"></div>
<script src="https://skiv.com/static/js/embed-player.min.js"></script>

Skip the <script> line if it's already on the page.

Possible data-content values
descriptionVideo description.
speechVideo transcript.
objectsA list of detected objects that appear in the video.
scenesA list of distinct scenes in the video.
soundsA list of distinct sounds in the video.
textA list of detected words that appear in the video as printed text.
actionsA list of distinct actions in the video.

Video Pages

Drop-in, responsive HTML templates. Download a page, host it yourself.

Centered video

Video centered vertically and horizontally.

<div class="container">
  <div id="video-player"></div>
</div>
<script src="https://skiv.com/static/js/embed-player.min.js"></script>
<script>
  const player = SkivPlayer({
    container: document.getElementById('video-player'),
    video: 'sLFaX4p',
    autoplay: true,
    loop: true,
    volume: 0,
    sizing: 'fit',
  });
</script>

Video + title + description

Video with title and description, centered horizontally.

<div class="container">
  <h1 id="video-title"></h1>
  <div id="video-player"></div>
  <h2 id="video-description"></h2>
</div>
<script src="https://skiv.com/static/js/embed-player.min.js"></script>
<script>
  const player = SkivPlayer({
    container: '#video-player',
    video: 'sLFaX4p',
    autoplay: true,
    loop: true,
    volume: 0,
    width: 'parent',
  });
  player.on('metadata', metadata => {
    document.getElementById('video-title').innerText = metadata.title;
    document.getElementById('video-description').innerText = metadata.description;
  });
</script>

Video + interactive transcript

Two-pane layout: video alongside its auto-generated, clickable transcript.

<div id="container-video" class="container">
  <h1 id="video-title"></h1>
  <div id="video-player"></div>
  <h2 id="video-description"></h2>
</div>
<div class="container-transcript">
  <div class="header-transcript">
    <h2>Transcript</h2>
  </div>
  <div id="transcript-list">
    <table><tbody id="speech-container"></tbody></table>
  </div>
</div>

<script src="https://skiv.com/static/js/embed-player.min.js"></script>
<script>
  const svid = 'VBdrD8v';
  const player = SkivPlayer({
    container: '#video-player',
    video: svid,
    width: 'parent',
    showTitle: false,
  });

  player.on('metadata', metadata => {
    document.getElementById('video-title').innerText = metadata.title;
    document.getElementById('video-description').innerText = metadata.description;
  });

  // Highlight the current word.
  player.on('timeupdate', function(time) {
    document.querySelectorAll('.word').forEach(function(word) {
      if (parseFloat(word.dataset.start) <= time &&
          parseFloat(word.dataset.end) > time) {
        word.classList.add('current');
        word.scrollIntoView({behavior: "smooth", block: "center"});
      } else {
        word.classList.remove('current');
      }
    });
  });

  // Fetch words and render as phrases.
  fetch(SKIV_LIB.apiOrigin() + '/api/files/i/speech/' + svid, {mode: 'cors'})
    .then(r => r.json())
    .then(words => {
      words.sort((a, b) => a[0] - b[0]);
      // Group into phrases and render...
    });

  // On word click, seek to that time.
  document.addEventListener('click', e => {
    if (e.target.classList.contains('word')) {
      player.seek(parseFloat(e.target.dataset.start));
      player.play();
    }
  });
</script>

Video + interactive chapters

Two-pane layout with clickable chapters for navigation.

<div class="container">
  <div id="video-player"></div>
</div>
<div class="container-chapters">
  <div class="header-chapters">
    <h2>Moments</h2>
  </div>
  <div id="container-list">
    <ol>
      <li data-start="0.0">Moment One     (0s)</li>
      <li data-start="2.5">Moment Two   (2.5s)</li>
      <li data-start="9.7">Moment three (9.7s)</li>
    </ol>
  </div>
</div>
<script src="https://skiv.com/static/js/embed-player.min.js"></script>
<script>
  const player = SkivPlayer({
    container: '#video-player',
    video: 'sLFaX4p',
    autoplay: true,
    loop: true,
    volume: 0,
    width: 'parent',
  });
  document.querySelectorAll('#container-list li').forEach(li => {
    li.addEventListener('click', e => {
      player.seek(parseFloat(e.currentTarget.dataset.start));
    });
  });
</script>

Video list

One player, multiple videos by ID. The videos don't need to share a collection.

<div id="skiv-video-player" data-width="900"></div>
<div id="vgrid"></div>
<script src="https://skiv.com/static/js/embed-player.min.js"></script>
<script>
  const player = SkivPlayer({
    container: '#skiv-video-player',
    video: 'R7c1PrQ',
    sizing: 'fill',
  });

  function MuseList(vlist) {
    vlist.map(x => {
      fetch(SKIV_LIB.apiOrigin() + '/api/files/info/' + x)
        .then(resp => resp.json())
        .then(jdata => {
          var img = document.createElement("img");
          img.src = new URL('thumbnails/thumbnail.jpg', jdata.url);
          img.onclick = function () {
            if (player.options.video === jdata.svid) {
              player.play();
            } else {
              player.setVideo(jdata.svid);
            }
          };
          document.getElementById('vgrid').appendChild(img);
        });
    });
  }

  var vlist = ['R7c1PrQ', 'cABMGwV', 'x41yzAr', 'PdPox4y', '9Hdap75'];
  MuseList(vlist);
</script>

Zoom integration

Send Zoom cloud recordings to your Skiv library automatically.

Auto-upload Zoom cloud recordings to Skiv

Zoom logo

Connect Zoom to Skiv with Zapier. The Zapier listing still uses our former name, muse.ai.

  1. Make sure your Zoom plan includes Cloud Recording (Pro, Business, Education, or Enterprise)
  2. Enable Cloud Recording in Zoom
  3. Go to your Zoom Recording Settings and enable Cloud Recording under the Recording & Transcript tab
  4. Enable Automatic Recording if you want every meeting saved without prompting
  5. Sign in to Zapier
  6. Open the Zoom to muse.ai Zap template
  7. When Zapier asks for your Skiv API key, open Settings > API Keys in Skiv, create a key, and paste it into Zapier
  8. Authorize both integrations when prompted; you must connect an active Zoom account and a Skiv account
  9. Turn on the Zap. New Zoom cloud recordings will upload to your Skiv library

FAQ

No hard cap. Skiv operates on a fair-use policy. If usage gets high enough to affect your viewers or others, we reach out to find a better plan.

No per-file limit. Total storage is governed by your plan.

Yes. Videos and collections support Private, Unlisted, and Public visibility. The embedded player can also restrict playback to specific domains. How to change visibility.

Any lawful content, provided it does not contain threats against individuals or groups. Offensive content may be flagged and gated behind viewer consent.

Yes. Go to Settings > Plan > Delete and follow the steps.