Building sample apps with api.video: a.video
Here at api.video we want to make it easy for people to share and distribute video,
ensuring video is the way to communicate. But we are often asked - “what can I do with your API?”
In order to answer some of your questions, we’ve begun creating demo applications that show off some of the power of api.video, and hosting them at a.video. We chose a.video so that we could have fun with the addresses hosting the demo applications.
In the last three months we’ve launched a number of applications that showcase some of the techniques you can use with api.video.
Uploading videos
There are 2 demos that focus on uploading video only:
Upload.a video is a basic video uploader. It uses a delegated token (a public API token that can only be used to upload videos. It also breaks up large videos in the browser using file.slice() so that there are no file size issues during the upload (links to the blog post, and to the GitHub repository in the a.video description page.
privatelyupload.a.video/ is a riff on the upload theme, but it uses an expiring delegated token. What this means is that the token is only valid for a few seconds - allowing the upload to start, and then it expires. It also allows you to rename the video, add a description, add/remove the mp4 version, and make the video public/private in the form. Links to the blog post, and to the GitHub repository in the a.video description page.
Upload a video, and then do something with the video
Once a video is uploaded, we can do more with the video. Here are some apps we’ve built to upload, then do something with the video:
upload.a.video/toDiscord uses nearly exactly the same code as upload a video, but it also posts the video in the Discord channel selected. Links to the blog post, and to the GitHub repository in the a.video description page.
moderate.a.video takes your uploaded video, and adds tagging - initially tagging the video as “needsModeration.” Then the video is sent to the hive.ai for moderation -looking for content like guns, smoking and nudity. Once the video has been processed, we analyze the results, and retag the video based on the results. I was not surprised that the “Baywatch” theme song had swimsuits, or that the James Bond trailer had guns, but this app allows automatic sorting of videos without any human intervention. Links to the blog post, and to the GitHub repository in the a.video description page.
caption.a.video/ Once the video is uploaded, the mp4 is sent to Authot, which does an audio analysis of the video, and creates a webVTT caption file. Once this is created, the caption file is added to the video automatically. Links to the blog post, and to the GitHub repository in the a.video description page.
Live Stream
livestream.a.video uses your webcam, and creates a livestream video -right from your browser! Links to the blog post, and to the GitHub repository in the a.video description page.
record.a.video Livestream a video with screen and camera - in several different overlays. You can also record a video and upload without streaming if you only want to playback the video. Links to the blog post, and to the GitHub repository in the a.video description page.
share.a.video plays a pre-recorded video on a livestream This means that you can stream a movie and everyone will be watching the recorded video at approximately the same time, creating a virtual watch party! Links to the blog post, and to the GitHub repository in the a.video description page.
Video playback
Of course, watching the video is a major part of the experience for your customers. Here are a few demos that leverage api.video’s playback tools to maximize the experience
watch.a.video/playlist/ Create a playlist of videos and have them play one after the other. Links to the blog post, and to the GitHub repository in the a.video description page.
storyify.a.video/ This application only shows videos created in the last 24 hours. Like many social media apps that “destroy” the video after 24 hours - this places a sense of urgency to users, so they keep coming back. Links to the blog post, and to the GitHub repository in the a.video description page.
resume.a.video uses our analytics along with your usernames (assuming a logged in user) to remember where the viewer left off. Did they watch the first 36 minutes? On return, the video starts at 30:01, instead of back at the beginning. Links to the blog post, and to the GitHub repository in the a.video description page.
watch.a.video/broadcast shows a livestream at the top, and then lists the 5 most recent recorded streams. Perfect for a class setting - where the live and most recent lectures/classes are all located on the same page. Links to the blog post, and to the GitHub repository in the a.video description page
Video deletion
delete.a.video/ It is sad, but sometimes, a video just needs to be deleted. This demo only deletes videos with one file name in my account, but can easily be modified to search and delete videos by name or tag. Links to the blog post, and to the GitHub repository in the a.video description page.
Video analytics
ffprobe.a.video uses a feature of FFMPEG - ffprobe to give you details about the video. This one does not leverage our APIs per se, but it's a cool way to learn about your video’s features. Links to the blog post, and to the GitHub repository in the a.video description page
whoswatched.a.video/ uses our analytics to break down each user session by country, device type and more. Links to the blog post, and to the GitHub repository in the a.video description page
Conclusion
These are the demos we’ve come up with in the last few months - if you have an idea, feel free to post it on the community page. If you have a demo that we could feature - let us know! We’d love to feature your cool api.video implementation as well!