Scripting way to upload videos to peertube and youtube
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

72 lines
1.9 KiB

from enum import Enum
from yapsy.IPlugin import IPlugin
class PluginTypes(Enum):
"""Plugin Types possibles to instantiate in this program."""
ALL = "All"
INTERFACE = "Interface"
PLATFORM = "Platform"
CONSUMER = "Consumer"
class IPrismediaBasePlugin(IPlugin):
"""
Base for prismedia’s plugin.
"""
def prepare_options(self, video, options):
"""
Return a falsy value to exit the program.
- `video`: video object to be uploaded
- `options`: a dictionary of options to be used by Prismedia and other plugins
"""
raise NotImplementedError("`prepare_options` must be reimplemented by %s" % self)
###
# Interface
###
class IInterfacePlugin(IPrismediaBasePlugin):
"""
Interface for the Interface plugin category.
"""
# TODO: Add callback for communicating upload’s progress to the user
###
# Platform
###
class IPlatformPlugin(IPrismediaBasePlugin):
"""
Interface for the Platform plugin category.
"""
def heartbeat(self):
"""
If needed for your platform, use a bit of the api so the platform is aware the keys are still in use.
"""
raise NotImplementedError("`heartbeat` must be reimplemented by %s" % self)
def upload(self, video, options):
"""
The upload function
"""
raise NotImplementedError("`upload` must be reimplemented by %s" % self)
###
# Consumer
###
class IConsumerPlugin(IPrismediaBasePlugin):
"""
Interface for the Consumer plugin category.
"""
def finished(self, video, options):
"""
What to do once the uploads are done.
- `video` is an object containing the video details. The `platforms` key contain a list of the platforms the video has been uploaded to and the status
"""
raise NotImplementedError("`finished` must be reimplemented by %s" % self)