Qtube

Latest version: v2.3.0

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

Scan your dependencies

Page 2 of 4

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).

1.7.0

**Video Quality filtering**

Videos can now be filtered out based on their quality (Issue 11). This feature uses 4 new parameters: `lowest_resolution`, `lowest_framerate`, `lowest_definition` and `preferred_dimensions`.
The first two rely on another package (pytube) and can take quite some time (30s on average for 5 videos on my machine) to run compared to "native" parameters. I would use them only if they are absolutely necessary for your needs (that's why they are set to *null* in the template).
The last two rely directly on the YT API like previous parameters.

-`lowest_resolution`: Lowest resolution you consider acceptable. For example, if set to *1080p*, videos 720p or lower will not be added to your playlist.
-`lowest_framerate`: Lowest framerate you consider acceptable. For example, if set to *60*, 30fps videos will not be added to your playlist.
-`lowest_definition`: Lowest definition you consider acceptable. For example, if set to *HD*, SD videos will not be added to your playlist. Setting this parameter to *HD* does the same thing as setting `lowest_resolution` to *720p*, but is much faster to run.
-`preferred_dimensions`: 2D videos are regular videos and 3D videos are videos using anaglyph 3D (red-cyan videos). This parameter currently cannot search for 360° videos.

**Side note**: The names of the parameters used for title filtering have been changed to be more consistent with the other parameters.

Page 2 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.