Skip to main content

Introducing WebService::TVDB

·1 min

Note: This module is now called WebService::TVDB, as it’s a more appropriate namespace. Net::TVDB will be removed from the CPAN.

WebService::TVDB is a Perl 5 interface to TheTVDB.com, an open database containing a lot of great information on TV series.

The synopsis shows how to use it:

my $tvdb = WebService::TVDB->new(api_key => 'ABC123', language => 'English');
 
my $series_list = $tvdb->search('men behaving badly');
 
my $series = @{$series_list}[0];
# $series is a WebService::TVDB::Series
say $series->SeriesName;
say $series->overview;
 
# fetches full series data
$series->fetch();
 
say $series->Rating;
say $series->Status;
 
for my $episode (@{ $series->episodes }){
  # $episode is a WebService::TVDB::Episode
  say $episode->Overview;
  say $episode->FirstAired;
}
 
for my $actor (@{ $series->actors }){
  # $actor is a WebService::TVDB::Actor
  say $actor->Name;
  say $actor->Role;
}
 
for my $banner (@{ $series->banners }){
  # $banner is a WebService::TVDB::Banner
  say $banner->Rating;
  say $banner->url;
}

I am going to use this as an extra source to App::MP4Meta. It currently uses the IMDB, but while its good for films it doesn’t have as much data on TV series. TheTVDB.com should provide a much better source.

A new version of App::MP4Meta which uses WebService::TVDB should be ready in the next few days.


Want great, practical advice on implementing data mesh, data products and data contracts?

In my weekly newsletter I share with you an original post and links to what's new and cool in the world of data mesh, data products, and data contracts.

I also include a little pun, because why not? 😅

(Don’t worry—I hate spam, too, and I’ll NEVER share your email address with anyone!)


Andrew Jones
Author
Andrew Jones
I build data platforms that reduce risk and drive revenue.