Smart Video Downloader

No algorithm description given

Table of Contents Introduction I/O Examples credits Algorithm Console Introduction This algorithm downloads videos from essentially any web resource, and reformats the extracted content into a standard video format automatically. It does this by using ffmpeg and youtube-dl . Note: This algorithm uses third party APIs that may rate limit. Expect that the request may take several minutes to download and convert a video from a particular web resource, so setting a timeout longer than the default is recommended. I/O JSON Input { "source":String, "output":String } source - (required) - The url to any web hosted video content, can be a direct http link or content link (eg: https://youtu.be/WEw5uzu2VQQ , https://vimeo.com/channels/staffpicks/214947122 , etc.) does not accept data API URI's, if one is passed an exception is thrown. output - (optional) - the output data API collection and filename to save the video as. defaults to data://.algo/temp/UUID.mkv note: when setting the output filename, the file extension is used to determine if we need to convert container formats. base string Input String The url to any web hosted video content, see source . does not accept data API URI's, if one is passed an exception is thrown. note: as there is no output parameter, it uses the default output Examples Json Input { "source":"https://www.youtube.com/watch?v=VPbK2AFNwdI", "output":"data://.my/video_collection/crazy_cto.mkv" } Output { "output":"data://.my/video_collection/crazy_cto.mkv" } String Input "https://www.facebook.com/BillGates/videos/10152332454511961/" Output { "output":"data://.algo/temp/dfd95279-853a-485d-867e-5571eacb457e.mkv" } Credits This algorithm heavily uses youtube-dl to extract and download video content, it also uses ffmpeg for video container format and codec conversions.

Tags
(no tags)

Cost Breakdown

0 cr
royalty per call
1 cr
usage per second
avg duration
This algorithm has permission to call other algorithms which may incur separate royalty and usage costs.

Cost Calculator

API call duration (sec)
×
API calls
=
Estimated cost
per calls
for large volume discounts
For additional details on how pricing works, see Algorithmia pricing.

Internet access

This algorithm has Internet access. This is necessary for algorithms that rely on external services, however it also implies that this algorithm is able to send your input data outside of the Algorithmia platform.


Calls other algorithms

This algorithm has permission to call other algorithms. This allows an algorithm to compose sophisticated functionality using other algorithms as building blocks, however it also carries the potential of incurring additional royalty and usage costs from any algorithm that it calls.


To understand more about how algorithm permissions work, see the permissions documentation.

1. Type your input

2. See the result

Running algorithm...

3. Use this algorithm

curl -X POST -d '{{input | formatInput:"curl"}}' -H 'Content-Type: application/json' -H 'Authorization: Simple YOUR_API_KEY' https://api.algorithmia.com/v1/algo/media/SmartVideoDownloader/0.2.2
View cURL Docs
algo auth
# Enter API Key: YOUR_API_KEY
algo run algo://media/SmartVideoDownloader/0.2.2 -d '{{input | formatInput:"cli"}}'
View CLI Docs
import (
  algorithmia "github.com/algorithmiaio/algorithmia-go"
)

input := {{input | formatInput:"go"}}

var client = algorithmia.NewClient("YOUR_API_KEY", "")
algo, _ := client.Algo("algo://media/SmartVideoDownloader/0.2.2")
resp, _ := algo.Pipe(input)
response := resp.(*algorithmia.AlgoResponse)
fmt.Println(response.Result)
View Go Docs
import com.algorithmia.*;
import com.algorithmia.algo.*;

String input = "{{input | formatInput:"java"}}";
AlgorithmiaClient client = Algorithmia.client("YOUR_API_KEY");
Algorithm algo = client.algo("algo://media/SmartVideoDownloader/0.2.2");
AlgoResponse result = algo.pipeJson(input);
System.out.println(result.asJsonString());
View Java Docs
import com.algorithmia._
import com.algorithmia.algo._

val input = {{input | formatInput:"scala"}}
val client = Algorithmia.client("YOUR_API_KEY")
val algo = client.algo("algo://media/SmartVideoDownloader/0.2.2")
val result = algo.pipeJson(input)
System.out.println(result.asJsonString)
View Scala Docs
var input = {{input | formatInput:"javascript"}};
Algorithmia.client("YOUR_API_KEY")
           .algo("algo://media/SmartVideoDownloader/0.2.2")
           .pipe(input)
           .then(function(output) {
             console.log(output);
           });
View Javascript Docs
var input = {{input | formatInput:"javascript"}};
Algorithmia.client("YOUR_API_KEY")
           .algo("algo://media/SmartVideoDownloader/0.2.2")
           .pipe(input)
           .then(function(response) {
             console.log(response.get());
           });
View NodeJS Docs
import Algorithmia

input = {{input | formatInput:"python"}}
client = Algorithmia.client('YOUR_API_KEY')
algo = client.algo('media/SmartVideoDownloader/0.2.2')
print algo.pipe(input)
View Python Docs
library(algorithmia)

input <- {{input | formatInput:"r"}}
client <- getAlgorithmiaClient("YOUR_API_KEY")
algo <- client$algo("media/SmartVideoDownloader/0.2.2")
result <- algo$pipe(input)$result
print(result)
View R Docs
require 'algorithmia'

input = {{input | formatInput:"ruby"}}
client = Algorithmia.client('YOUR_API_KEY')
algo = client.algo('media/SmartVideoDownloader/0.2.2')
puts algo.pipe(input).result
View Ruby Docs
use algorithmia::*;

let input = {{input | formatInput:"rust"}};
let client = Algorithmia::client("YOUR_API_KEY");
let algo = client.algo("media/SmartVideoDownloader/0.2.2");
let response = algo.pipe(input);
View Rust Docs
import Algorithmia

let input = "{{input | formatInput:"swift"}}";
let client = Algorithmia.client(simpleKey: "YOUR_API_KEY")
let algo = client.algo(algoUri: "media/SmartVideoDownloader/0.2.2") { resp, error in
  print(resp)
}
View Swift Docs
Discussion
  • {{comment.username}}