Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lacymorrow/movie-trailer
📽 Fetch movie trailers: "Crash" ➔ http://path/to/trailer
https://github.com/lacymorrow/movie-trailer
api callback cli javascript lookup movie movie-trailer nextjs node npm react tmdb trailer
Last synced: 10 days ago
JSON representation
📽 Fetch movie trailers: "Crash" ➔ http://path/to/trailer
- Host: GitHub
- URL: https://github.com/lacymorrow/movie-trailer
- Owner: lacymorrow
- License: mit
- Created: 2014-05-03T23:01:17.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2023-10-31T19:34:39.000Z (about 1 year ago)
- Last Synced: 2024-04-14T00:21:50.829Z (7 months ago)
- Topics: api, callback, cli, javascript, lookup, movie, movie-trailer, nextjs, node, npm, react, tmdb, trailer
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/movie-trailer
- Size: 359 KB
- Stars: 31
- Watchers: 5
- Forks: 8
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
> [!IMPORTANT]
> This library is considered **feature-complete** and will only receive updates for bug fixes. You may still create an issue if you have a feature request.# movie-trailer [](https://www.patreon.com/bePatron?u=55065733)
[![npm version](https://badge.fury.io/js/movie-trailer.svg)](https://badge.fury.io/js/movie-trailer) [![Maintainability](https://api.codeclimate.com/v1/badges/8dce3031d73c7beb9c98/maintainability)](https://codeclimate.com/github/lacymorrow/movie-trailer/maintainability) [![Try movie-trailer on RunKit](https://badge.runkitcdn.com/movie-trailer.svg)](https://npm.runkit.com/movie-trailer)> Fetch movie trailer url(s): "Oceans Eleven" âž” https://www.youtube.com/watch?v=...
[![movie-trailer](https://github.com/lacymorrow/movie-trailer/raw/master/demo.svg?sanitize=true)]()
#### [Try it on RunKit](https://runkit.com/lacymorrow/movie-trailer) _([Output](https://runkit.io/lacymorrow/movie-trailer/branches/master?search=Avatar))_
## Features
* Fetch Youtube trailers for any movie or TV show
* Return one or many trailer URLs
* Use anywhere, browser or Node - UMD _([Browser Support](https://caniuse.com/#feat=fetch))_
* Works in React + NextJS client/server (uses [isomorphic-fetch](https://www.npmjs.com/package/isomorphic-fetch))
* Async/await, Promise and Callback APIs## Install
Using [NPM](https://npmjs.com):
```bash
npm install --save movie-trailer
```In the browser:
```html
```
(via Unpkg, or via [JSDelivr](https://cdn.jsdelivr.net/npm/movie-trailer/index.min.js))## Usage
```js
const movieTrailer = require( 'movie-trailer' ) // or import movieTrailer from 'movie-trailer'await movieTrailer( 'Up' )
//=> https://www.youtube.com/watch?v=...
```##### TV Shows
```js
movieTrailer('Shameless', {videoType: 'tv'})
//=> https://www.youtube.com/watch?v=...
```##### Return an array of video IDs
```js
movieTrailer( 'Oceans Eleven', {id: true, multi: true} )
.then( response => console.log( response ) )
//=> [ 'XXXXXXXXX', 'XXXXXXXXX', ... ]
```##### Both
```js
movieTrailer( 'Oceans Eleven', {year: '1960', multi: true} )
.then( response => console.log( response ) )//=> [ https://www.youtube.com/watch?v=XXXXXXXXX, ... ]
```##### Legacy-style search using release date year
```js
movieTrailer( 'Oceans Eleven', 1960 )
.then( response => console.log( response ) )//=> http://path/to/trailer
```## API
### movieTrailer(movie [, options ] [, callback])
* #### movie
**Required**
Type: `string`
Movie to search for. If searching with a `tmdbId`, pass `null`.
* #### options
Type: `object`
* ##### `apiKey`
Type: `string`
_(optional)_ Use your own TMDB api key. You can get a free key here: https://developers.themoviedb.org/ .
_Use `-a` or `--api_key` on the CLI_
* ##### `id` _(`false`)_
Type: `boolean`
_(optional)_ Return only Youtube video IDs.
_Use `-i` or `--id` on the CLI_
* ##### `language`Type: `string` (_language code_)
_(optional)_ Movie release language.
_Use `-l` or `--language` on the CLI_
* ##### `multi` _(`false`)_
Type: `boolean`
_(optional)_ Return an array of urls vs a single url.
_Use `-m` or `--multi` on the CLI_
```js
movieTrailer( 'Oceans Eleven', { multi: true } )
```* ##### `tmdbId`
Type: `string` || `number`
_(optional)_ Search using a TMDB content ID instead of a search term
_Use `-t` or `--tmdb_id` on the CLI_
```js
movieTrailer( null, { tmdbId: 161 } ) // Content ID for "Ocean's Eleven"
```* ##### `year`
Type: `string` || `number`
_(optional)_ Movie release year.
_Use `-y` or `--year` on the CLI_
* #### callback(error, response)
Callback function.
```js
movieTrailer( 'Oceans Eleven', ( error, response ) => {
console.log( response );
//=> http://path/to/trailer
} )
```#### From the command line
```bash
$ npx movie-trailer --helpUsage
$ npx movie-trailer movieOptions
--api_key -k (optional) Your own TMDB API key: http://developers.themoviedb.org
--id -i Return just the Youtube video ID.
--language, -l Specify a language code (eg: 'de_DE').
--multi, -m Returns an array of URLs instead of a single URL.
--tmdb_id -t Specify an explicit TMDB ID.
--year, -y Specify a release year to search.Example
$ npx movie-trailer 'Oceans Eleven' -y 1960 -m
//=> http://path/to/trailer
```## Related
* [album-art](https://github.com/lacymorrow/album-art)
* [movie-art](https://github.com/lacymorrow/movie-art)
* [movie-info](https://github.com/lacymorrow/movie-info)## License
This package uses data from TMDB. You may consult [TMDB terms of service](https://www.themoviedb.org/documentation/api/terms-of-use) for usage rights.
[MIT](http://opensource.org/licenses/MIT) © [Lacy Morrow](http://lacymorrow.com)