MCPcopy
hub / github.com/vime-js/vime

github.com/vime-js/vime @v5.4.1 sqlite

repository ↗ · DeepWiki ↗ · release v5.4.1 ↗
1,202 symbols 2,435 edges 238 files 36 documented · 3%
README

🎉  Vime is merging into Vidstack! Read more 🎉

Vime Logo

Vime is a customizable, extensible, accessible and framework agnostic media player.

package-badge license-badge semantic-release-badge Release [docs-badge]docs [jsdelivr-badge]jsdelivr [discord-badge]discord

Vime 2 - Video Player Screenshot

✨ Features

  • 🎥  Multi-provider support (HTML5, HLS, YouTube, Vimeo etc.).
  • 👑  One API to rule them all! Don't re-learn anything the next time you need a player.
  • ♾️  Avoid cross-browser differences on media related APIs, such as fullscreen and picture-in-picture.
  • 👐  Accessible to all via ARIA roles/states/properties and keyboard support.
  • 🌎  I18N support.
  • 🖥  Designed with both mobile and desktop in mind.
  • 👌  Touch input friendly.
  • 🎨  Style anything you want with CSS variables. Default light and dark themes are included.
  • 🏎️  Performant with preconnections + lazy loading of components and media out of the box.
  • 🧩  Easily build your own components and extend Vime.
  • 🗑️  Lightweight - ~25kB (gzip) standalone, and ~47kB with the default Vime UI.
  • ️🧰  Awesome default custom UI's for audio/video/live media.
  • 🛠  Comprehensive player API with a heap of properties, methods and events.
  • 💪  Built with TypeScript so you can enjoy completely typed components.
  • 🏠  Feel right at home with HTML/CSS/JS thanks to web components.
  • 🏗️  Framework specific bindings for React, Vue, Svelte, Stencil and Angular.

🍭 Examples

The examples below are using web components but there are bindings for React, Vue, Svelte, Stencil and Angular. If you want to see how they look check out our Demo.

<vm-player autoplay muted>
  <vm-video poster="/media/poster.png" cross-origin>




    <track
      default
      kind="subtitles"
      src="https://github.com/vime-js/vime/raw/v5.4.1/media/subs/en.vtt"
      srclang="en"
      label="English"
    />
  </vm-video>


  <vm-default-ui />
</vm-player>

Native UI?


<vm-player autoplay muted controls>
  <vm-audio cross-origin>



  </vm-audio>
</vm-player>

Custom UI?


<vm-player autoplay muted style="--vm-player-theme: #1873d3">

  <vm-youtube video-id="DyTCOwB0DVw" />

  <vm-ui>
    <vm-click-to-play />
    <vm-captions />
    <vm-poster />
    <vm-spinner />
    <vm-default-settings />
    <vm-controls pin="bottomLeft" active-duration="2750" full-width>

      <vm-playback-control tooltip-direction="right" />
      <vm-volume-control />
      <vm-time-progress />
      <vm-control-spacer />
      <vm-caption-control />
      <vm-pip-control keys="p" />
      <vm-settings-control />
      <vm-fullscreen-control keys="f" tooltip-direction="left" />
    </vm-controls>
  </vm-ui>
</vm-player>

🏗️ Frameworks

There are framework specific bindings for:

Keep in mind, that at its core Vime is still simply web components. Even if your framework is not mentioned in the list above, it most likely still supports Vime natively. You can check here if your framework has complete support for web components.

There are also examples for loading and using Vime with:

🖥️ Browsers

Vime is forward thinking and built for the modern web. All ES6 Compatible browsers are supported, some of which are listed below.

  • Edge 79+
  • Firefox 68+
  • Chrome 61+
  • Safari 11+
  • iOS Safari 11+
  • Opera 48+

🎥 Providers

📖 Documentation

Documentation can be found at https://vimejs.com.

🙋 Support

Feel free to join our Discord channel if you'd like help with anything related to Vime. Please remember to be respectful and patient as this is a community driven project.

🔨 Contributing

If you'd like to contribute and help in building a better media player for the web, then everything you need to get started can be found in the Contributing Guide.

❤️ Sponsors

A huge thanks to our sponsors who support open-source projects like Vime.

mux

vercel

cypress

Extension points exported contracts — how you extend this code

AdapterProvider (Interface)
(no doc) [10 implementers]
packages/core/src/components/providers/MediaProvider.ts
SvelteWebComponent (Interface)
(no doc)
packages/svelte/src/usePlayerStore.ts
AppHome (Interface)
(no doc)
examples/stencil/src/components.d.ts
Element (Interface)
(no doc)
examples/vue/src/shims-tsx.d.ts
MediaFileProvider (Interface)
(no doc) [11 implementers]
packages/core/src/components/providers/file/MediaFileProvider.ts
AppRoot (Interface)
(no doc)
examples/stencil/src/components.d.ts
ElementClass (Interface)
(no doc)
examples/vue/src/shims-tsx.d.ts
KeyboardControl (Interface)
(no doc) [6 implementers]
packages/core/src/components/ui/controls/control/KeyboardControl.ts

Core symbols most depended-on inside this repo

isUndefined
called by 74
packages/core/src/utils/unit.ts
withComponentRegistry
called by 49
packages/core/src/components/core/player/withComponentRegistry.ts
withPlayerContext
called by 33
packages/core/src/components/core/player/withPlayerContext.ts
empty
called by 31
packages/core/src/utils/Disposal.ts
add
called by 30
packages/core/src/utils/Disposal.ts
listen
called by 25
packages/core/src/utils/dom.ts
fileName
called by 17
packages/core/src/utils/target.ts
findPlayer
called by 16
packages/core/src/components/core/player/findPlayer.ts

Shape

Method 581
Function 323
Interface 158
Class 127
Enum 13

Languages

TypeScript100%

Modules by API surface

packages/core/src/components.d.ts100 symbols
packages/core/src/components/core/player/player.tsx52 symbols
packages/core/src/components/providers/file/file.tsx49 symbols
packages/core/src/components/ui/settings/menu/menu.tsx29 symbols
packages/core/src/components/providers/vimeo/vimeo.tsx26 symbols
packages/core/src/components/providers/youtube/youtube.tsx23 symbols
packages/core/src/components/core/player/PlayerMethods.ts23 symbols
packages/core/src/utils/support.ts20 symbols
packages/core/src/components/ui/settings/default-settings/default-settings.tsx20 symbols
packages/core/src/components/providers/dash/dash.tsx20 symbols
packages/core/src/components/core/player/fullscreen/FullscreenController.ts20 symbols
packages/core/src/utils/network.ts19 symbols

Dependencies from manifests, versioned

@angular-devkit/build-angularv11-lts · 1×
@angular/animationsv11-lts · 1×
@angular/cliv11-lts · 1×
@angular/commonv11-lts · 1×
@angular/compilerv11-lts · 1×
@angular/compiler-cliv11-lts · 1×
@angular/corev11-lts · 1×
@angular/formsv11-lts · 1×
@angular/platform-browserv11-lts · 1×
@angular/platform-browser-dynamicv11-lts · 1×
@angular/routerv11-lts · 1×
@babel/core7.15.8 · 1×

For agents

$ claude mcp add vime \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact