Qtube

Latest version: v2.0.0

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

Scan your dependencies

Page 1 of 3

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.

1.6.0

**Upload date filtering**

Videos can now be filtered out based on the day they were uploaded to YouTube (Issue 6). This new functionality uses the `run_frequency` parameter, which handles two types of input: a selection of strings or any positive integer.
The string can be any of the following:
- *daily* (keeps only videos from the previous day)
- *weekly* (keeps only videos from the last 7 days)
- *monthly* (keeps only videos from the last 30 days)

The integer is interpreted as the cutoff number of days that the software considers (i.e., using *7* would give the same result as using *weekly*).

**Important note**: For now, only the day is relevant, and not the full upload time with hours and minutes. This means that a day here is not a rolling 24-hour period. Let's say that the software runs at 8pm on April 1st with the *run_frequency=daily* parameter. In this case, only videos uploaded between March 31st 0am and March 31st 12pm would be taken into account, and not videos uploaded between March 31st 8pm and April 1st 8pm.

Page 1 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.