Awesome
custom-actions-app-python
<img width="1644" alt="artboard_small" src="https://user-images.githubusercontent.com/19295862/66240171-ba8dd280-e6b0-11e9-9ccf-573a4fc5961f.png">Use Custom Actions with Frame.io
Frame.io's custom actions feature allows developers to integrate workflows directly into Frame.io as programmable UI components.
Custom actions are triggered by users within the app. Once enabled on developer.frame.io, they display in the right-click dropdown menu available on any asset. In the example below, Test is the name of the custom action:
<p align="center"><img width="500px" alt="Custom Action Send to YouTube" src="https://static-assets.frame.io/devrel/images/custom-action-send-youtube.png"></p>If you aren't familiar with assets, read about them in the API Guides.
Once created, your action will be accessible from all Assets in a Project. You can create multiple custom actions, and each action may comprise one or several interactions between Frame.io and your app.
What can I do with the sample code?
- Present users with forms including text and selection fields.
- Add a custom action publishing a Frame.io asset to YouTube
We'll add samples to this repository over time. This is an open source resource -- your submissions are extremely welcome.
Pre-requisites
- Frame.io account
- Note that you will need Team Manager or Admin permissions to create Custom Actions for your team.
- A valid bearer token or OAuth app token
- A Zapier account (see example Zap)
- Web server with a publicly accessible address - we recommend ngrok
- Python 3.6+
Configure Your Custom Action
You must configure your custom action in the Custom Actions area of developer.frame.io. Follow the instructions here.
Installation
$ pipenv shell
$ python <file_to_run.py>
Troubleshooting
Make sure your ngrok or middleware port matches your app (by default the application runs on PORT 8000
.) If you need help getting ngrok to work, you can check out our troubleshooting guide for ngrok.
If the tests won't build, try running pytest --pyargs <file_to_run>