Youtube Music Uploader
DISCLAIMER: As-of 2021, this product does not have a free support team anymore. If you want this product to be maintained, please support on Patreon.
(This product is available under a free and permissive license, but needs financial support to sustain its continued improvements. In addition to maintenance and stability there are many desirable features yet to be added.)
This program will create a Daemonic folder to upload your music library to Youtube Music
This work is based upon Sigma67’s Youtube Music API.
Installation
This program needs watchdog, ytmusicapi and requests Python libraries to work.
apt-get install python3-pip build-essential
pip3 install youtube-music-uploader
Once installed, You have to authenticate to Youtube Music via the youtube-music-auth command
# Usage youtube-music-auth [path_to_auth_file=~/oauth]
If first parameter is not defined, the script will try to store/load your credentials through the ~/oauth file.
Then follow the setup instructions provided https://ytmusicapi.readthedocs.io/en/latest/setup/browser.html
Usage
Uploader
This program will scan a given directory for new elements to upload them to Youtube Music. First, launch the daemon to watch a directory new inputs.
usage: youtube-music-upload [-h] [-v] [--directory DIRECTORY] [--auth-file AUTH_FILE] [-r]
[-o] [--deduplicate_api DEDUPLICATE_API]
optional arguments:
-h, --help show this help message and exit
-v, --version show version number and exit
--directory DIRECTORY, -d DIRECTORY
Music Folder to upload from (default: .)
--auth-file AUTH_FILE, --oauth AUTH_FILE, -a AUTH_FILE
Path to the browser auth file created by youtube-music-auth
(default: ~/oauth). --oauth is a deprecated alias.
-r, --remove Remove the file on your hard drive if it was already successfully uploaded (default: False)
-o, --oneshot Upload folder and exit (default: False)
-l, --listener_only Only listen for new files, does not parse all files at launch (default: False)
-e ERROR_FILE_PATH, --log ERROR_FILE_PATH
Log to a specified file path (Default stderr)
-w DEDUPLICATE_API, --deduplicate_api DEDUPLICATE_API
Deduplicate API (should be HTTP and compatible with
the manifest (see README)) (default: None)
Deduplicate
This program will send all files or the specified file to the deduplication API
usage: youtube-music-upload-deduplicate [-h] --deduplicate_api DEDUPLICATE_API
[--directory DIRECTORY] [--file FILE]
[--remove]
optional arguments:
-h, --help show this help message and exit
--directory DIRECTORY, -d DIRECTORY
Music Folder to deduplicate
--file FILE, -f FILE
Music file path to deduplicate
-r, --remove Unmark specified file/folder (default: False)
-w DEDUPLICATE_API, --deduplicate_api DEDUPLICATE_API
Deduplicate API (should be HTTP and compatible with
the manifest (see README)) (default: None)
Deduplication API
Preface
This API is completely optional. You don’t have to implement this. It will only help you to avoid useless Google calls
Thanks to Brian Doherty, a local snapshot is now made to avoid external deduplication calls on local updated files.
You can use your own API implementation to avoid multiple Youtube Music uploads. This API should match with the following requirements.
You may want to use this existing one : Google MusicManager Deduplicate API.
Exists
path |
method |
parameter |
status code |
||
|---|---|---|---|---|---|
/ |
GET |
name |
description |
value |
description |
path |
path of your file |
200 or 204 |
Your file was already uploaded |
||
404 (or whatever) |
Your file was NOT uploaded |
Saving
path |
method |
parameter |
status code |
||
|---|---|---|---|---|---|
/ |
POST |
name |
description |
value |
description |
path |
path of your file |
whatever |
Status code does not change anything |
Removing
path |
method |
parameter |
status code |
||
|---|---|---|---|---|---|
/ |
DELETE |
name |
description |
value |
description |
path |
path of your file |
whatever |
Status code does not change anything |
About
Requirements
Youtube Music Uploader works with Python 3 or above.
Submitting bugs and feature requests
Bugs and feature request are tracked on GitHub
License
Youtube Music Uploader is licensed under the MIT License
Metadata
Release files for youtube-music-uploader 1.3.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| youtube_music_uploader-1.3.4.tar.gz | 10.5 kB | With provenance | Details for youtube_music_uploader-1.3.4.tar.gz |
Release files / youtube_music_uploader-1.3.4.tar.gz
| Download URL | youtube_music_uploader-1.3.4.tar.gz |
|---|---|
| Size | 10.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3830ccecb442b9956149086ab334b0044121869eb0e7ddb4eb3e3cbd9448f811
|
|
BLAKE2b-256 checksum How to use checksums |
12d4c717051a11a5e215695cbdc6a6dc74d44d27566cd191ecc14887d64ccc45
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 1, 2026.
Transparency logSecurity for youtube-music-uploader 1.3.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 1 file in this release has been uploaded with provenance metadata.
Attestation for youtube_music_uploader-1.3.4.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 1, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.