Skip to main content

Python script for quickly searching and downloading new content out of YouTube.

Project description

autoYT

autoYT is a Python program designed to automate the process of watching videos out of YouTube, without using YouTube. It's functions include searching YouTube for videos, searching channels for a new videos, but also to download, delete and group videos into folders based on their upload date both automatically and manually.

Usage

To search for a video, use the -s or --search argument.

To search for new videos on a channel, use -S or --searchchannel argument.

You can use -c or --cap argument with both of the above arguments to limit the number of results.

example:

$ autoyt -S "nocopyrightsounds" -c 5
Channel Name: NoCopyrightSounds
Channel Link: https://youtube.com/channel/UC_aEa8K-EOJ3D6gOs7HcyNg
-------------------------------------------

Title: ASHWOOD - Maria (ft. Blooom & Ghost’n’Ghost) [NCS Release]
Link: https://www.youtube.com/watch?v=FsnluXPC6s0
Upload Date: 2023-06-22
-------------------------------------------

Title: jeonghyeon & Noisy Choice - Too Far [NCS Release]
Link: https://www.youtube.com/watch?v=kI4usARVdaU
Upload Date: 2023-06-20
-------------------------------------------

Title: Daniel Levi - Clown Around [NCS Release]
Link: https://www.youtube.com/watch?v=iPyg-QknNeY
Upload Date: 2023-06-17
-------------------------------------------

Title: Coopex, Afterfab, Heleen - EX [NCS Release]
Link: https://www.youtube.com/watch?v=rpPiFMcjF6M
Upload Date: 2023-06-16
-------------------------------------------

Title: Anyone remember these? #nocopyrightsounds #ncs #music #nostalgia #childhoodmemories
Link: https://www.youtube.com/watch?v=kC8LvAqhPtE
Upload Date: 2023-06-15
-------------------------------------------

To add a channel to cache use -a or --add argument with a channel's ID or channel's name after. You can also add multiple channels at once.

In the same way you can remove channels from cache using -r or --remove argument with a channel's ID or channel's name after.

To list added channels use -l or --list argument.

example

$ autoyt -a "nocopyrightsounds" "UCsBjURrPoezykLs9EqgamOA"
$ autoyt -l
Name: NoCopyrightSounds
Link: https://www.youtube.com/channel/UC_aEa8K-EOJ3D6gOs7HcyNg
Channel ID: UC_aEa8K-EOJ3D6gOs7HcyNg
-------------------------------------------

Name: Fireship
Link: https://www.youtube.com/channel/UCsBjURrPoezykLs9EqgamOA
Channel ID: UCsBjURrPoezykLs9EqgamOA
-------------------------------------------


$ autoyt -r "UC_aEa8K-EOJ3D6gOs7HcyNg"
$ autoyt -l
Name: Fireship
Link: https://www.youtube.com/channel/UCsBjURrPoezykLs9EqgamOA
Channel ID: UCsBjURrPoezykLs9EqgamOA
-------------------------------------------

You can download videos from the saved channels using -d or --download argument. You can supply this argument with the number of days - this indicates how old videos are allowed to be downloaded.

In a similar way you can use a ``--removevideos` argument with the number N of days after it. It'll delete all videos older than N days.

You can also use --find argument with a channel's name after it. It will list location of all of the downloaded videos from a selected channel

example

$ autoyt -d 5
2023_06_21/Fireship/PHP will make you poor StackOverflow 2023 Results: Downloading...
2023_06_20/Fireship/SST in 100 seconds: Downloading...
2023_06_16/Fireship/RIP Google Domains… and 5 big tech stories this week: Downloading...
2023_06_13/Fireship/Nuxt in 100 Seconds: Downloading...
2023_06_12/Fireship/Reddit’s API rug pull: Downloading...
$ autoyt --find fireship
./videos/2023_06_12/Fireship/Reddit’s API rug pull.webm
./videos/2023_06_13/Fireship/Nuxt in 100 Seconds.webm
./videos/2023_06_16/Fireship/RIP Google Domains… and 5 big tech stories this week.webm
./videos/2023_06_20/Fireship/SST in 100 seconds.webm
./videos/2023_06_21/Fireship/PHP will make you poor StackOverflow 2023 Results.webm   

$ autoyt --removevideos 3
$ autoyt --find fireship 
./videos/2023_06_21/Fireship/PHP will make you poor StackOverflow 2023 Results.webm

And finally you can use an endless mode - -e. It'll download and remove videos automatically by running in a loop. It takes all of it's arguments from the config file.

You can do more using autoYT. To list all of the available options use -h argument - autoyt -h

Config

Config is stored in the autoYT/src/config/config.toml file(soon to change). Configuration contains all of the preferences regarding the usage of this program.

Sample config.toml

# The directory where program will put all of the downloaded videos.
download_dir = "./videos"
# The directory where program will put the cache file with all of the saved channels
cache_dir = "./cache"
# The quality used to download all of the videos(see yt-dlp -f option)
quality = "ba+bv[height<=?1080]"
# Describes how old downloaded videos can be(in days). 0 means no limit.
max_video_age = 0
# How many videos are allowed to be downloaded from a channel. 0 means no limit.
max_downloaded_channel_videos = 0
# Automatically delete videos older than this number of days(endless mode). 0 means never.
delete_videos_age = 0 
# Wait this many seconds before checking channels for new videos again(endless mode).
channels_check_break = 0

# ID of a channel
[UC_aEa8K-EOJ3D6gOs7HcyNg]
# Quality setting just for this channel
quality = "x"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

autoyt-0.1.1.tar.gz (20.7 kB view details)

Uploaded Source

File details

Details for the file autoyt-0.1.1.tar.gz.

File metadata

  • Download URL: autoyt-0.1.1.tar.gz
  • Upload date:
  • Size: 20.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for autoyt-0.1.1.tar.gz
Algorithm Hash digest
SHA256 df6d839abf165f7fabc5c8c834f4927f11ba6aed5a489417c3a74d146c4f69f1
MD5 86f76113204502bff13c72058f9ba87d
BLAKE2b-256 8f581eae21c6a540a5a9fab7667424dcc163c312614e1e9761ddaa10392cc203

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page