Create a music player with youtube links and control it (Angular5 module).
Usage :
-
Run
npm install youtube-music-player --savein the root of your application -
import { YoutubeMusicPlayerModule } from 'youtube-music-player';in your module -
Add it to the imports of NgModule :
@NgModule({[...], imports: [[...], YoutubeMusicPlayerModule], [...]}) -
Integrate the youtube music player
<app-youtube-music-player [playlist]="playlist"></app-youtube-music-player>in your HTML
The playlist has to be an array of video ids (example : ['cTn288M5Mak', '3dm_5qWWDV8']).
You can convert an array of youtube links to an array of videos ids using the YoutubeMusicPlayerService method urlsToIds(playlist: string[]).
Example :
let playlist = this.ympService.urlsToIds(['https://www.youtube.com/watch?v=cTn288M5Mak', 'https://www.youtube.com/watch?v=3dm_5qWWDV8']);
To use the Service :
-
import { YoutubeMusicPlayerService } from 'youtube-music-player';in your component using it -
Assign the service in your component :
constructor([...], private ympService: YoutubeMusicPlayerService) -
You can now interact with the youtube music player (e.g :
this.ympService.setPlaylist(playlist);)
Possible Inputs on <app youtube-music-player></app-youtube-music-player> :
playlist : the array of strings containing your video ids (default : [])
autoplay : autostart the playlist ? (default : 0, can be set to 1)
index : position on the playlist (default : 0)
youtubeApiLink : youtube api link (default : 'https://www.youtube.com/iframe_api')
Methods on YoutubeMusicPlayerService to control the player :
getReadySub() : returns a BehaviorSubject that you should subscribe, it will set the value true when the youtube player is ready.
getErrorSub() : returns a BehaviorSubject that you should subscribe, it will set a value > 0 if an error occurs describing the error flag on youtube's API.
setPlaylist(playlist: string[]) : change the current playlist
setIndex(index: number) : change the current position on the array of musics
public play() : play the playlist
public pause() : pause the playlist
urlsToIds(playlist: string[]) : converts an array of youtube links to an array of youtube video ids
Example :
Add to your component HTML :
<app-youtube-music-player></app-youtube-music-player>
Then in the component class method (with private ympService : YoutubeMusicPlayerService on the constructor's params) :
const youtubeLinks = ['https://www.youtube.com/watch?v=cTn288M5Mak',
'https://www.youtube.com/watch?v=3dm_5qWWDV8'];
const playlist = this.ympService.urlsToIds(youtubeLinks); // extract the ids from the youtube links
this.ympService.getReadySub().subscribe((val) => {
if (val === true) { // when player is ready
this.ympService.setPlaylist(playlist);
this.ympService.play();
}
});
Notes :
If you have troubles with the player :
-
Make sure you interact with the player when it is ready, subscribe on
getReadySub()and make sure it holds the valuetruebefore any interaction with the player. -
Make sure you are not trying to play an empty playlist.
Author : Sebastien S.
Github repository : https://github.com/neoski/youtube-music-player