No description
Find a file
Ronnie da7547b74b
Merge pull request #15 from ddjerqq/master
Add support for ARM architecture to docker-publish.yml workflow
2025-09-16 19:51:28 -07:00
.github/workflows Add support for ARM architecture to docker-publish.yml workflow 2025-09-16 14:22:40 +00:00
src Testing build 2025-02-21 17:43:03 -08:00
static Better error messages 2024-10-20 11:37:54 -07:00
templates/media Add ffprobe 2024-12-26 16:31:39 -08:00
.dockerignore init 2020-02-02 19:06:03 -08:00
.gitignore Switch from youtube-dl to yt-dlp. Upgrade to go 1.23.2, ffmpeg 7.1, alpine 3.20 2024-10-19 13:40:18 -07:00
build.sh init 2020-02-02 19:06:03 -08:00
docker-build.sh init 2020-02-02 19:06:03 -08:00
docker-run.sh Switch from youtube-dl to yt-dlp. Upgrade to go 1.23.2, ffmpeg 7.1, alpine 3.20 2024-10-19 13:40:18 -07:00
Dockerfile Upgrade to golang 1.24.2 2025-04-12 13:10:10 -07:00
go.mod Upgrade to golang 1.24.2 2025-04-12 13:10:10 -07:00
go.sum Upgrade deps 2025-04-12 13:08:45 -07:00
README.md Update readme 2025-02-20 17:38:01 -08:00
run.sh init 2020-02-02 19:06:03 -08:00
tidy.sh Upgrade to golang 1.24.0, upgrade other deps 2025-02-17 18:08:44 -08:00

Media Roller

A mobile friendly tool for downloading videos from social media. The backend is a Golang server that will take a URL (YouTube, Reddit, Twitter, etc), download the video file, and return a URL to directly download the video. The video will be transcoded to produce a single mp4 file.

This is built on yt-dlp. yt-dlp will auto update every 12 hours to make sure it's running the latest nightly build.

Note: This was written to run on a home network and should not be exposed to public traffic. There's no auth.

Screenshot 1

Screenshot 2

Running

Make sure you have yt-dlp and FFmpeg installed then pull the repo and run:

./run.sh

Or for docker locally:

 ./docker-build.sh
 ./docker-run.sh

With Docker, published to both dockerhub and github.

  • ghcr: docker pull ghcr.io/rroller/media-roller:master
  • dockerhub: docker pull ronnieroller/media-roller

See:

The files are saved to the /download directory which you can mount as needed.

Docker Environemnt Variables

  • MR_DOWNLOAD_DIR where videos are saved. Defaults to /download
  • MR_PROXY will pass the value to yt-dlp witht he --proxy argument. Defaults to empty

API

To download a video directly, use the API endpoint:

/api/download?url=SOME_URL

Create a bookmarklet, allowing one click downloads (From a PC):

javascript:(location.href="http://127.0.0.1:3000/fetch?url="+encodeURIComponent(location.href));

Integrating with mobile

After you have your server up, install this shortcut. Update the endpoint to your server address by editing the shortcut before running it.

https://www.icloud.com/shortcuts/d3b05b78eb434496ab28dd91e1c79615

Unraid

media-roller is available in Unraid and can be found on the "Apps" tab by searching its name.