All Projects β†’ woefe β†’ Ytcc

woefe / Ytcc

Licence: gpl-3.0
Command line tool to keep track of your favorite playlists on YouTube and many other places.

Programming Languages

python
139335 projects - #7 most used programming language
python3
1442 projects

Projects that are alternatives of or similar to Ytcc

Mpv.net
🎞 mpv.net is a modern media player for Windows that works just like mpv.
Stars: ✭ 737 (+701.09%)
Mutual labels:  command-line, mpv, youtube-dl
spongebob-cli
Watch classic spongebob from the terminal!
Stars: ✭ 179 (+94.57%)
Mutual labels:  youtube, mpv, youtube-dl
mpv-youtube-download
A userscript for MPV that allows you to download youtube audio and video with one key press πŸ’Ύ
Stars: ✭ 16 (-82.61%)
Mutual labels:  youtube, mpv, youtube-dl
Youtubedl Material
Self-hosted YouTube downloader built on Material Design
Stars: ✭ 731 (+694.57%)
Mutual labels:  youtube-dl, youtube
Android Dev Sources
All those Android development sources that you need to be and stay awesome!
Stars: ✭ 434 (+371.74%)
Mutual labels:  subscription, youtube
Youtube Downloader
πŸ‘ A much faster alternative to youtube-dl built for PHP applications. Working as of 2021-02-27
Stars: ✭ 474 (+415.22%)
Mutual labels:  youtube-dl, youtube
Smd
Spotify Music Downloader
Stars: ✭ 822 (+793.48%)
Mutual labels:  youtube-dl, youtube
Youtub.ly Android
An android app to download πŸ“Ή videos and songs from youtube to phone internal storage
Stars: ✭ 17 (-81.52%)
Mutual labels:  youtube-dl, youtube
Peapod
A personal podcast service.
Stars: ✭ 24 (-73.91%)
Mutual labels:  youtube-dl, youtube
Youtube Fetcher
πŸ“Ί Youtube Podcasting 🎧
Stars: ✭ 31 (-66.3%)
Mutual labels:  youtube-dl, youtube
Youtube Dl Gui
A cross platform front-end GUI of the popular youtube-dl written in wxPython.
Stars: ✭ 7,914 (+8502.17%)
Mutual labels:  youtube-dl, youtube
Firedm
python open source (Internet Download Manager) with multi-connections, high speed engine, based on python, LibCurl, and youtube_dl https://github.com/firedm/FireDM
Stars: ✭ 977 (+961.96%)
Mutual labels:  youtube-dl, youtube
Kawaii Player
Multimedia player, media library manager and portable media server with PC-To-PC casting feature.
Stars: ✭ 397 (+331.52%)
Mutual labels:  mpv, youtube
Netflix To Srt
Rip, extract and convert subtitles to .srt closed captions from .xml/dfxp/ttml and .vtt/WebVTT (e.g. Netflix, YouTube)
Stars: ✭ 387 (+320.65%)
Mutual labels:  youtube-dl, youtube
Termplay
GitLab: https://gitlab.com/jD91mZM2/termplay
Stars: ✭ 500 (+443.48%)
Mutual labels:  youtube-dl, youtube
Youtube Music
YouTube Music Desktop App bundled with custom plugins (and built-in ad blocker / downloader)
Stars: ✭ 376 (+308.7%)
Mutual labels:  youtube-dl, youtube
Youtube Dl Android
πŸ“¦πŸ“¦Video downloader for Android - Download videos from Youtube, Facebook, Twitter, Instagram, Dailymotion, Vimeo and more than 1000 other sites
Stars: ✭ 322 (+250%)
Mutual labels:  youtube-dl, youtube
Hitomi Downloader
🍰 Desktop application to download images/videos/music/text from Hitomi.la and other sites, and more.
Stars: ✭ 1,154 (+1154.35%)
Mutual labels:  youtube-dl, youtube
Boram
🎞 Cross-platform graphical WebM converter
Stars: ✭ 312 (+239.13%)
Mutual labels:  mpv, youtube-dl
.scripts
~/.scripts - Ready-to-Eat Command Line Scripts.
Stars: ✭ 12 (-86.96%)
Mutual labels:  command-line, youtube

ytcc

Build and test

Command line tool to keep track of your favorite playlists on YouTube and many other places.

Version 2.0.0 is out! Read the migration guide before upgrading to 2.0.0 or later! If you are looking for older versions, check the Release page and the v1 branch.

Installation

pip install ytcc

Alternative installation methods are described in the documentation.

Migrating from version 1

See the migration guide

Usage

"Subscribe" to playlists.

ytcc subscribe "Jupiter Broadcasting" "https://www.youtube.com/c/JupiterBroadcasting/videos"
ytcc subscribe "NCS: House" "https://www.youtube.com/playlist?list=PLRBp0Fe2GpgmsW46rJyudVFlY6IYjFBIK"

Import subscriptions from YouTube's subscription manager export.

ytcc import ~/Downloads/subscription_manager

Fetch metadata of new videos.

ytcc update

List unwatched videos.

ytcc list

List playlist content in JSON format.

ytcc --output json list --playlist "NCS: House" --since 2020-07-07 --watched

List all videos as RSS feed.

ytcc --output rss list --watched

Start the interactive terminal interface.

ytcc tui

Mark all videos of a playlist as watched without playing them.

ytcc ls -p "Jupiter Broadcasting" | ytcc mark

Listen to some music without limitations.

ytcc ls -p "NCS: House" | ytcc play --audio-only

Alternative terminal interface built on fzf. Requires fzf version 0.23.1 or newer. The script is automatically installed on most platforms during installation of ytcc. If it's not installed, you can download it from here.

ytccf.sh

# Show help and key bindings
ytccf.sh --help

Configuration

Ytcc searches for a configuration file at following locations:

  1. $XDG_CONFIG_HOME/ytcc/ytcc.conf
  2. ~/.config/ytcc/ytcc.conf
  3. ~/.ytcc.conf

If no config file is found in these three locations, a default config file is created at ~/.config/ytcc/ytcc.conf.

Example config

[ytcc]

# Directory where downloads are saved, when --path is not given
download_dir = ~/Downloads

# Parameters passed to mpv. Adjusting these might break video playback in ytcc!
mpv_flags = --ytdl --ytdl-format=bestvideo[height<=?1080]+bestaudio/best

# Defines the order of video listings.
# Possible options: id, url, title, description, publish_date, watched, duration, extractor_hash,
# playlists. Every option must be suffixed with :desc or :asc for descending or ascending sort.
order_by = playlists:asc, publish_date:desc

# Default attributes shown in video listings.
# Some ytcc commands allow overriding the default set here in the config.
video_attrs = id, title, publish_date, duration, playlists

# Default attributes shown in playlist/subscription listings.
# Some ytcc commands allow overriding the default set here in the config.
playlist_attrs = name, url, tags

# Path where the database is stored.
# Can be used to sync the database between multiple machines.
db_path = ~/.local/share/ytcc/ytcc.db

# The format of used to print dates
date_format = %Y-%m-%d

# Default failure threshold before a video is ignored.
# When a video could not be updated repeatedly, it will be ignored by ytcc after `max_update_fail`
# attempts. This setting can be overridden with the --max-fail commandline parameter.
max_update_fail = 5

# Default update backlog.
# The update command will only check the first `max_update_backlog` videos of a playlist to improve
# performance. This setting can be overridden with the --max-backlog commandline parameter.
max_update_backlog = 20

# Ignore videos that have an age limit higher than the one specified here.
age_limit = 0


# Prompt and table colors. Supports 256 colors. Hence, values between 0-255 are allowed.
# See https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit for the color codes.
[theme]
prompt_download_audio = 2
prompt_download_video = 4
prompt_play_audio = 2
prompt_play_video = 4
prompt_mark_watched = 1
table_alternate_background = 245


[tui]
# The characters to use for selecting videos in interactive mode.
alphabet = sdfervghnuiojkl

# Default action of interactive mode.
# Possible options: play_video, play_audio, mark_watched, download_audio, download_video
default_action = play_video


[youtube_dl]
# Format (see FORMAT SELECTION in youtube-dl manpage). Make sure to use a video format here, if you
# want to be able to download videos.
format = bestvideo[height<=?1080]+bestaudio/best

# Output template (see OUTPUT TEMPLATE in youtube-dl manpage).
output_template = %(title)s.%(ext)s

# If a merge is required according to format selection, merge to the given container format.
# One of mkv, mp4, ogg, webm, flv
merge_output_format = mkv

# Limit download speed to the given bytes/second. Set 0 for no limit.
# E.g. limit to one megabyte per second
#ratelimit = 1000000
ratelimit = 0

# Set number of retries before giving up on a download.
# Set 0 for no retries.
retries = 0

# Subtitles for videos.
# If enabled and available, automatic and manual subtitles for selected languages are embedded in
# the video.
#subtitles = en,de
subtitles = off

# Embed the youtube thumbnail in audio downloads.
# Transforms the resulting file to m4a, if enabled.
thumbnail = on

# Skips livestreams in download command.
skip_live_stream = true

# Don't download videos longer than 'max_duration' seconds.
# 0 disables the limit.
max_duration = 9000

# Restrict filenames to only ASCII characters and avoid "&" and spaces in filenames.
restrict_filenames = off

mpv configuration

Ytcc uses mpv to play videos. You can configure mpv to integrate nicely with ytcc. Specifics are documented here.

Reporting issues

Create a new issue on the GitHub issue tracker. Describe the issue as detailed as possible and please use the issue templates, if possible! Important: do not forget to include the output of ytcc bug-report in bug reports. It also might help a lot to run ytcc with the --loglevel debug option and include the output in your report.

Development

We recommend developing inside a virtualenv.

  1. Set up a virtualenv
  2. Install development dependencies: pip install -r devrequirements.txt

Run the following commands before every pull request and fix the warnings or errors they produce.

mypy ytcc
pytest
pylint ytcc
pydocstyle ytcc
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].