client->search()->seriesByName((string)$argv[1]); // Use the first show found (highest match) and get the requested season/episode from $argv if ($series) { $serie = $series->getData(); print_r($serie); if ($season > 0 && $episode > 0 && $day === '') { try { $episodeObj = $tvdb->client->series()->getEpisodesWithQuery($serie[0]->getid(), ['airedSeason' => $season, 'airedEpisode' => $episode]); } catch (InvalidArgumentException $error) { echo 'Invalid argument(s) used' . PHP_EOL; return false; } catch (InvalidJsonInResponseException $error) { if (strpos($error->getMessage(), 'Could not decode JSON data') === 0 || strpos($error->getMessage(), 'Incorrect data structure') === 0) { return false; } } catch (RequestFailedException $error) { return false; } catch (UnauthorizedException $error) { if (strpos($error->getMessage(), 'Unauthorized') === 0) { return false; } } if ($episodeObj) { print_r($episodeObj); } } else if ($season === 0 && $episode === 0) { $episodeObj = $tvdb->client->series()->getEpisodes($serie[0]->getid()); if (is_object($episodeObj)) { foreach ($episodeObj->getData() AS $ep) { print_r($ep); } } } else if (preg_match('#^(19|20)\d{2}\/\d{2}\/\d{2}$#', $season . '/' . $episode . '/' . $day, $airdate)) { $episodeObj = $tvdb->client->series()->getEpisodesWithQuery($series[0]->id, ['firstAired' => (string)$airdate[0]]); if ($episodeObj) { print_r($episodeObj); } } else { exit($c->error('Invalid episode data returned from TVDB API.')); } } else { exit($c->error('Invalid show data returned from TVDB API.')); } } else { exit($c->error('Invalid arguments. This script requires a text string (show name) followed by a season and episode number.' . PHP_EOL . 'You can also optionally supply "YYYY" "MM" "DD" arguments instead of season/episode for an airdate lookup.') ); }