Qtube

Latest version: v2.4.0

Safety actively analyzes 707009 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 4

2.0.0

Final release of the 2.0.0 version.

This release is the same as the [alpha release](https://github.com/Killian42/QTube/releases/tag/v2.0.0-alpha), apart from the version name.

**Full Changelog**: https://github.com/Killian42/QTube/compare/v1.10.0...v2.0.0

2.0.0alpha

This pre-release includes a lot of internal changes, most of which are related to the project now being available on [PyPI](https://pypi.org/project/QTube/) (~PyPI releases are currently incorrect because of mistakes during testing~ This has now been solved). For this reason, code structure has been changed, which broke compatibility with previous releases. So the major version has been bumped up.

The main changes are the creation of a CLI and the possibility to modify user parameters with command line arguments.

In the directory in which the project is saved, type `qtube` in the terminal after having configured your user parameters file to run the program.
For more versatile uses, you can now also use command line arguments. Enable this option by setting the `override_json` parameter to *True* in your JSON user parameters file. Provided command line arguments will then override what is in your JSON user parameters file. Command line arguments work using the regular `python qtube.py [options]` or using the CLI.

Other changes include:
- Upload date filtering now takes into account the full upload time (if the program is run at 8:42pm on April 1st with `run_frequency` set to *daily*, videos uploaded between 8:42pm March 31st and 8:42pm April 1st will be taken into account, and not only videos uploaded between 0am March 31st and 8:42pm April 1st as was previously the case).
- The name of the playlist is now displayed in the terminal above the recap of added videos.
- Improved version checking at the start of the program. It can now tell if the local version is newer than the latest stable release (i.e. a development version).
- Fixed punctuation inconsistencies in function docstring.
- The library.py file has been split into several files, which have been packaged in a new utils directory.
- Renamed run.py as qtube.py

**Full Changelog**: https://github.com/Killian42/QTube/compare/v1.10.0...v2.0.0

1.10.0

**Non-subscribed channels support**

This release adds support for non-subscribed YT channels (Issue 3). Extra channels can now be checked for new videos using the `include_extra_channels` and the `extra_channel_handles` parameters. This is implemented similarly to how caption filtering has been implemented in [v1.8.0](https://github.com/Killian42/QTube/releases/tag/v1.8.0).

`include_extra_channels`: Triggers the check for extra channels. If set to *True*, the channels listed in the following parameter will be taken into account in the rest of the program, even if you're not subscribed to them.
`extra_channel_handles`: Additional YT channels to check. Channels are identified by their handle. Videos from these channels will be processed in the same way as videos from channels you're subscribed to.

Like in [v1.8.0](https://github.com/Killian42/QTube/releases/tag/v1.8.0), `extra_channel_handles` is an optional parameter, but the program won't start if it is not defined and `include_extra_channels` is set to *True* at the same time.


The example section of the [ReadMe](README.md) for this project has also been improved with more examples.

1.9.0

**Greater title filtering flexibility**

This release introduces 3 new parameters: `ignore_title_emojis`, `ignore_title_punctuation` and `ignore_title_case`. These parameters affect how the original title filtering parameters (i.e., `required_in_title` and `banned_in_title`) work. To understand how they are used, let's consider the hypothetical case of a video called *Gardening DIY: 🪴Tips for Growing Your Own Vegetables and Herbs* with `required_in_title` set to *["DIY","Tips"]* and `banned_in_title` set to *["gardening"]*.

-`ignore_title_emojis`: Determines whether emojis are ignored in video titles when checking with the `required_in_title` and `banned_in_title` lists. If set to *False* (default), the video will not be added because of the plant emoji next to the word *Tips*. If set to *True*, the emoji would be ignored and the video would be added to the playlist.

-`ignore_title_punctuation`: Determines whether punctuation is ignored in video titles when checking with the `required_in_title` and `banned_in_title` lists. If set to *False* (default), the video will not be added because of the colon character next to the word *DIY*. If set to *True*, the colon would be ignored and the video would be added to the playlist. All of these symbols are considered punctuation "$%&'()*+,-./:;<=>?[\]^_`{|}~.

-`ignore_title_case`: Determines whether case is ignored in video titles when checking with the `required_in_title` and `banned_in_title` lists. If set to *False* (default), the video will be added because *gardening* is not capitalized in the banned list, contrary to the title. If set to *True*, this would not matter and the video would be added to the playlist.

1.8.0

**Caption filtering**

Videos can now be filtered out based on their captions (Issue 12). This feature uses two parameters: `require_captions` and `caption_options`. ⚠️ If you used QTube before this release, you need to recreate your credentials by deleting the *token.pickle* file ⚠️. This is necessary because another scope (https://www.googleapis.com/auth/youtube.force-ssl) has been added to enable caption filtering. Retrieving captions for a video costs 50 quota units, which can become quite expensive, so watch your quota usage.

-`require_captions`: Triggers caption filtering. For a given video, if none of its captions match with the values of the following parameter, this video will not be added.
-`caption_options`: Captions properties to check. Supported properties are: `trackKind`, `languages`, `audioTrackType`, `isCC`, `isLarge`, `isEasyReader`, `isAutoSynced` and `status`. See the [Youtube captions docs](https://developers.google.com/youtube/v3/docs/captions) for what their values can be. Except for `languages`, default values for these parameters should work for the majority of users.

`caption_options` is an optional parameter, but the program won't start if it is not defined and `require_captions` is set to *True* at the same time.

**Side note**: Further optimizations have been made to reduce the number of API calls and typos have been fixed as well.

1.7.1

**Projection filtering**

Shortly after releasing [v1.7.0](https://github.com/Killian42/QTube/releases/tag/v1.7.0), I noticed that I missed a video property regarding their projection in the YT API documentation. This is corrected in this release with in the introduction of the `preferred_projections` parameter. This parameter filters out videos based on their projection, i.e., if it is *rectangular* (regular videos) or *360* (best enjoyed with a VR headset).

Page 2 of 4

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.