# videojs-fetch-flv

> A videojs plugin to download http-flv stream

Latest version **1.0.12** (published 2022-09-14) · MIT license · 0 weekly downloads

## Install

```sh
npm install videojs-fetch-flv
pnpm add videojs-fetch-flv
yarn add videojs-fetch-flv
bun add videojs-fetch-flv
```

## Health

**Score 20/100 (F)** — status: abandoned.

Positive: esm support; no vulnerabilities.

Warnings: low downloads; no types.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.12 |
| Published | 2022-09-14 |
| First published | 2021-08-15 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Node | >=14 |
| Dependencies | 4 |
| Unpacked size | 340.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 4 |
| Author | lin557 |
| Maintainers | lin557 |
| Keywords | videojs, videojs-plugin |

## Links

- npm: https://www.npmjs.com/package/videojs-fetch-flv
- Repository: https://github.com/lin557/videojs-fetch-flv
- Homepage: https://github.com/lin557/videojs-fetch-flv#readme
- Issues: https://github.com/lin557/videojs-fetch-flv/issues
- npm.io page: https://npm.io/package/videojs-fetch-flv

## Dependencies (4)

- [flv.js](https://npm.io/package/flv.js.md) ^1.6.1
- [global](https://npm.io/package/global.md) ^4.4.0
- [video.js](https://npm.io/package/video.js.md) ^7.14.3
- [videojs-flvjs](https://npm.io/package/videojs-flvjs.md) ^0.2.0

## Alternatives

- [@sindresorhus/slugify](https://npm.io/package/@sindresorhus/slugify.md) — 3.7M weekly downloads
- [solid-js](https://npm.io/package/solid-js.md) — 2.7M weekly downloads
- [expo-glass-effect](https://npm.io/package/expo-glass-effect.md) — 2.5M weekly downloads
- [nanoassert](https://npm.io/package/nanoassert.md) — 780.8K weekly downloads
- [@ffmpeg/ffmpeg](https://npm.io/package/@ffmpeg/ffmpeg.md) — 529.5K weekly downloads

## Recent versions

- 1.0.12 (latest) — 2022-09-14
- 1.0.11 — 2021-12-19
- 1.0.10 — 2021-12-19
- 1.0.9 — 2021-11-15
- 1.0.8 — 2021-10-20
- 1.0.7 — 2021-10-20
- 1.0.6 — 2021-10-20
- 1.0.5 — 2021-10-20
- 1.0.4 — 2021-10-20
- 1.0.3 — 2021-10-20
- 1.0.2 — 2021-08-18
- 1.0.1 — 2021-08-15
- 1.0.0 — 2021-08-15

## README

# videojs-fetch-flv

A videojs plugin to download http-flv stream

![image](docs/images/step0.png)

## Table of Contents

<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->


- [Installation](#installation)
- [Usage](#usage)
  - [`<script>` Tag](#script-tag)
  - [ES Modules](#es-modules)
  - [Browserify/CommonJS](#browserifycommonjs)
  - [RequireJS/AMD](#requirejsamd)
- [Methods](#methods)
  - [show()](#show)
  - [hide()](#hide)
  - [updateIsLive(value)](#updateislivevalue)
  - [start()](#start)
  - [stop()](#stop)
- [Configuration](#configuration)
- [License](#license)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->


## Installation

```sh
npm install --save videojs-fetch-flv
```

Other

```sh
npm install --save video.js videojs-flvjs flv.js

# or 

npm install --save video.js videojs-flvjs-es6 flv.js
```



## Usage

To include videojs-fetch-flv on your website or web application, use any of the following methods.

### `<script>` Tag

This is the simplest case. Get the script in whatever way you prefer and include the plugin _after_ you include [video.js][videojs], so that the `videojs` global is available.

```html
<script src="//path/to/video.min.js"></script>
<script src="//path/to/flv.min.js"></script>
<script src="//path/to/videojs-flvjs.min.js"></script>
<script src="//path/to/videojs-fetch-flv.min.js"></script>
<script>
  var player = videojs('my-video')
  player.fetchFlv()
</script>
```

or

```html
<script src="//path/to/video.min.js"></script>
<script src="//path/to/flv.min.js"></script>
<script src="//path/to/videojs-flvjs.min.js"></script>
<script src="//path/to/videojs-fetch-flv.min.js"></script>
<script>
  var player = videojs('my-video')
  var options = {
    isLive: false,
    ...
  }
  player.fetchFlv(options)
</script>
```

or 

```html
<script src="//path/to/video.min.js"></script>
<script src="//path/to/flv.min.js"></script>
<script src="//path/to/videojs-flvjs.min.js"></script>
<script src="//path/to/videojs-fetch-flv.min.js"></script>
<script>
  var options = {
        plugins: {
          fetchFlv: {
            isLive: false,
            ...
          }
        }
      }
  var player = videojs('my-video', options)
</script>
```

### ES Modules

Install videojs-fetch-flv via npm and `import` the plugin as you would any other module.
You will also need to import the stylesheet in some way.

```js
import videojs from 'video.js'
import 'videojs-fetch-flv'
import 'videojs-fetch-flv/dist/videojs-fetch-flv.css'

const player = videojs('my-video')
player.fetchFlv()
// player.fetchFlv({
//   isLive: true
// })
```

or

```js
import videojs from 'video.js'
import 'videojs-flvjs-es6'
import 'videojs-fetch-flv'
import 'videojs-fetch-flv/dist/videojs-fetch-flv.css'

const options = {
        plugins: {
          fetchFlv: {
            isLive: false,
            ...
          }
        }
      }
const player = videojs('my-video', options)
```


### Browserify/CommonJS

When using with Browserify, install videojs-fetch-flv via npm and `require` the plugin as you would any other module.

```js
var videojs = require('video.js')

// The actual plugin function is exported by this module, but it is also
// attached to the `Player.prototype`; so, there is no need to assign it
// to a variable.
require('videojs-fetch-flv')

var player = videojs('my-video')
player.fetchFlv()
```

### RequireJS/AMD

When using with RequireJS (or another AMD library), get the script in whatever way you prefer and `require` the plugin as you normally would:

```js
require(['video.js', 'videojs-fetch-flv'], function(videojs) {
  var player = videojs('my-video')
  player.fetchFlv()
})
```



## Methods



### show()

Show record button control



### hide()

Hide record button control



### updateIsLive(value)

update options.isLive value



### start()

When the player is playing, you can manually record.

```js
player.on('play', () => {
  player.fetchFlv().start()
})
```



### stop()

When the player is playing, you can manually stop the recording and download the recording file.

**Note:** When closing or destroying the player, if you are recording, it is best to call stop() first

```js
player.on('error', () => {
  player.fetchFlv().stop(isSaveFile)
})
```

isSaveFile: Boolean, default **false**

- **true**: stop fetch and save the media file
- **false**: stop fetch only



## Configuration

| Property      | Attributes | Type    | Default              | Description                                                  |
| :------------ | :--------: | ------- | -------------------- | ------------------------------------------------------------ |
| isLive        |  Optional  | Boolean | true                 | Download parameters. True is used to download http-flv,  false is used to download directly by the browser |
| beforeElement |  Optional  | String  | fullscreenMenuToggle | Name of the player.controlBar component for the button to be attached before |
| controlText   |  Optional  | String  | Download             | String for the control button title                          |
| position      |  Optional  | String  | top-right            | The location to place the record status div (top-left, top-right, bottom-left, or bottom-right) |
| opacity       |  Optional  | Number  | 1                    | The opacity of the record status div (from `[0, 1]`). If not specified, it will default to 1. |



## License

MIT. Copyright (c) lin557


[videojs]: http://videojs.com/

---
_Source: https://npm.io/package/videojs-fetch-flv · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
