Get a track/album information from the URL.
PHP 8.1 or later
composer require jamband/ripple
// basic
$ripple = new Jamband\Ripple\Ripple();
$ripple->request('https://example.bandcamp.com/track/title');
$ripple->provider(); // Bandcamp
$ripple->url(); // https://example.bandcamp.com/track/title
$ripple->id(); // 123
$ripple->title(); // Title, by Artist
$ripple->image(); // https://img.example.com/img/123.jpg
// embed
$ripple = new Jamband\Ripple\Ripple();
$ripple->options(['embed' => ['Bandcamp' => 'size=large/']]);
$ripple->request('https://example.bandcamp.com/track/title');
$embed = $ripple->embed(); // https://bandcamp.com/EmbeddedPlayer/track=123/size=large/
?>
<iframe width="300" height="300" src="<?= $embed ?>" allow="fullscreen"></iframe>
// custom curl options
$ripple = new Jamband\Ripple\Ripple();
$ripple->options(['curl' => [
// CURLOPT_TIMEOUT => 8,
// CURLOPT_USERAGENT => '...',
// ...
]]);
$ripple->request('https://example.bandcamp.com/track/title');
// mock response
$ripple = new Jamband\Ripple\Ripple();
$ripple->options(['response' => '...']);
$ripple->request('https://example.bandcamp.com/track/title');
Bandcamp:
https://{subdomain}.bandcamp.com/track/{title}
https://{subdomain}.bandcamp.com/album/{title}
https://{subdomain}.bandcamp.com/releases
https?://{domain}/track/{title}
https?://{domain}/album/{title}
https?://{domain}/releases
SoundCloud:
https://soundcloud.com/{account}/{title}
https://soundcloud.com/{account}/sets/{title}
Vimeo:
https://vimeo.com/{id}
YouTube:
https://www.youtube.com/watch?v={id}
https://www.youtube.com/playlist?list={id}
https://youtu.be/{id}
- Bandcamp
- SoundCloud
- Vimeo
- YouTube
Ripple is licensed under the MIT license.