old_contents: import re
  from urllib.parse import urlparse
  
  from svtplay_dl.error import ServiceError
  from svtplay_dl.fetcher.hls import hlsparse
  from svtplay_dl.service import OpenGraphThumbMixin
  from svtplay_dl.service import Service
  
  
  class Pokemon(Service, OpenGraphThumbMixin):
      supported_domains = ["pokemon.com"]
  
      def get(self):
          data = self.get_urldata()
  
          parse = urlparse(self.url)
          match = re.search(r"^/([a-z]{2})/", parse.path)
          if not match:
              yield ServiceError("Cant county code")
              return
  
          res = self.http.get(f"http://www.pokemon.com/api/pokemontv/channels?region={match.group(1)}")
          janson = res.json()
          match = re.search('data-video-season="([0-9]+)"', data)
          season = match.group(1)
          match = re.search('data-video-episode="([0-9]+)"', data)
          episode = match.group(1)
  
          for i in janson:
              for n in i["media"]:
                  if season == n["season"] and episode == n["episode"]:
                      stream = n["stream_url"]
  
          self.output["title"] = "pokemon"
          self.output["season"] = season
          self.output["episode"] = episode
  
          yield from hlsparse(self.config, self.http.request("get", stream), stream, output=self.output)
  
new_contents: import re
  from urllib.parse import urlparse
  
  from svtplay_dl.error import ServiceError
  from svtplay_dl.fetcher.hls import hlsparse
  from svtplay_dl.service import OpenGraphThumbMixin
  from svtplay_dl.service import Service
  
  
  class Pokemon(Service, OpenGraphThumbMixin):
      supported_domains = ["watch.pokemon.com"]
  
      def get(self):
          parse = urlparse(self.url)
          if parse.fragment == "":
              yield ServiceError("need the whole url")
              return
  
          match = re.search(r"id=([a-f0-9]+)\&", parse.fragment)
          if not match:
              yield ServiceError("Cant find the ID in the url")
              return
  
          res = self.http.get("https://www.pokemon.com/api/pokemontv/v2/channels/us/")
  
          janson = res.json()
          stream = None
          for i in janson:
              for n in i["media"]:
                  if n["id"] == match.group(1):
                      stream = n
                      break
  
          self.output["title"] = "pokemon"
          self.output["season"] = stream["season"]
          self.output["episode"] = stream["episode"]
          self.output["episodename"] = stream["title"]
  
          yield from hlsparse(self.config, self.http.request("get", stream["stream_url"]), stream["stream_url"], output=self.output)
  
subject: make it work with the website