code: def RegisterKey(cls, key,
                      getter=None, setter=None, deleter=None, lister=None):
          
          key = key.lower()
          if getter is not None:
              cls.Get[key] = getter
          if setter is not None:
              cls.Set[key] = setter
          if deleter is not None:
              cls.Delete[key] = deleter
          if lister is not None:
              cls.List[key] = lister
docs: Register a new key mapping.
  
          A key mapping is four functions, a getter, setter, deleter,
          and lister. The key may be either a string or a glob pattern.
  
          The getter, deleted, and lister receive an MP4Tags instance
          and the requested key name. The setter also receives the
          desired value, which will be a list of strings.
  
          The getter, setter, and deleter are used to implement __getitem__,
          __setitem__, and __delitem__.
  
          The lister is used to implement keys(). It should return a
          list of keys that are actually in the MP4 instance, provided
          by its associated getter.