pushbullet_ytdl

pushbullet_ytdl

Docker app from Exes' Repository

Overview

PushBullet-YTDL is a lightweight pure bash service for YouTube-dl and Pushbullet. PushBullet-YTDL uses Youtube-DL Material by Tzahi12345 as the API endpoint to send YouTube-dl requests to and leverages the public Pushbullet API to listen for download requests. Features Register a device to a given Pushbullet account. Listen for pushes to the device registered. Extract the URL to the desired download. Send a download request to Youtube-DL Material via its internal API. Delete a push after it has been successfully downloaded. Usage To use simply share a video from the source app (e.g. YouTube app) on your phone to the PushBullet device running PushBullet-YTDL.

PushBullet-YTDL

PushBullet-YTDL is a lightweight pure bash service for for YouTube-dl and Pushbullet. PushBullet-YTDL uses Youtube-DL Material by Tzahi12345 as the API endpoint to send YouTube-dl requests to and leverages the public Pushbullet API to listen for download requests.

Features

  • Register a device to a given Pushbullet account.
  • Listen for pushes to the device registered.
  • Extract the URL to the desired download.
  • Send a download request to Youtube-DL Material via its internal API.
  • Delete a push after it has been successfully downloaded.

Usage

To use simply share a video from the source app (e.g. YouTube app) on your phone to the PushBullet device running PushBullet-YTDL.

Note: Obviously Pushbullet is required to be installed on your device, and the source app too...

Setup

  • Create a Pushbullet account if one does not already exist
  • Generate an API key in the Pushbullet web interface
  • Run Youtube-DL Material by Tzahi12345 either on your host or in a Docker container
  • Generate an API key in the Youtube-DL Material setting page
  • Either:
    • Set the required environment variables (see below) and run the pyd.sh script, OR
    • Pull the Docker container docker pull ghcr.io/steveharsant/pushbullet_ytdl:latest (recommended)
    • Run the Docker container with:
docker run -d \
  --name=pushbullet_ytdl \
  -e PUSHBULLET_DEVICE_NICKNAME=<<PUSHBULLET DEVICE NAME>> \
  -e PUSHBULLET_KEY=<<PUSHBULLET DEVICE API KEY>> \
  -e YTDLM_KEY=<<Youtube-DL Material API KEY>> \
  -e YTDLM_URL=<<URL to Youtube-DL Material. Requires http/https and port number>> \
  --restart unless-stopped \
  ghcr.io/steveharsant/pushbullet_ytdl:latest

Environment Variables

Variable Name Type Required Description
DEBUG Boolean False Set to TRUE to enable debugging.
PUSHBULLET_DEVICE_NICKNAME String True Friendly name for the device running PushBullet-YTDL
PUSHBULLET_KEY String True API Key for Pushbullet
SLEEP_TIME Integer False Change sleep delay between calls (Push bullet free account only allows 500 API calls per month. Default is 60 seconds
YTDLM_KEY String True Youtube-DL Material's API Key
YTDLM_URL String True Youtube-DL Material's URL. Must include http/https and a port number. Do not put a trailing slash!

Building

To build the Docker container from a Dockerfile use:

  • Enter the root directory cd /root/path/to/repository
  • Build the container in the subdirectory from the root docker build -t <<tag name>> -f .Dockerfiles/Dockerfile .

Development

TO make development easier, it is possible to create a module named ``00-dev_config.shin themodulesdirectory with environment variables used by PushBullet-YTDL. This file is in both the.gitignoreand.dockerignore` files so they won't ever be committed or packaged into the Docker container. Example file is:

#!/bin/bash

export PUSHBULLET_KEY=
export PUSHBULLET_DEVICE_NICKNAME=
export YTDLM_KEY=
export YTDLM_URL=
export DEBUG=
export SLEEP_TIME=

Required shebang

As this repository is built for Alpine Linux, the required shebang is #!/bin/bash. Any other fails when executing.

Portential Roadmap

  • Add audio downloads
  • Parallel download requests to Youtube-DL Material

Install pushbullet_ytdl on Unraid in a few clicks.

Find pushbullet_ytdl in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for pushbullet_ytdl Review the template variables and paths Click Install

Details

Repository
ghcr.io/steveharsant/pushbullet_ytdl:latest
Last Updated2026-07-15
First Seen2022-09-23

Runtime arguments

Network
bridge
Shell
bash
Privileged
false
Extra Params
--restart=unless-stopped

Template configuration

Pushbullet Device NameVariable
Target
PUSHBULLET_DEVICE_NICKNAME
Default
Unraid
Value
Unraid
Pushbullet API KeyVariable

Enter the API key for Pushbullet. Go to https://www.pushbullet.com/#settings/account to retrieve your API key/access token

Target
PUSHBULLET_KEY
YouTube-DL-Material API KeyVariable

YouTube-Download-Material API key

Target
YTDLM_KEY
YouTube-DL-Material URLVariable

URL + Port for YouTube-DL-Material. If HTTP: include http://ip:port if HTTPS: include https://domain

Target
YTDLM_URL
DEBUGVariable
Value
FALSE
Host Key 1Variable

Container name for YouTube-DL-Material

Target
depends_on
Value
youtube-dl-material
Sleep TimeVariable

Change sleep delay between calls (Push bullet free account only allows 500 API calls per month. Default is 60 seconds

Target
SLEEP_TIME
Default
60
Value
60