Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Released VidGear Stable v0.2.4 [#275]
# New Features ✨ - **CamGear:** * Added a new YT_backend Internal Class with YT-DLP backend: + Implemented `YT_backend` a new CamGear's Internal YT-DLP backend class for extracting metadata from Streaming URLs. + Added support for pipeling (live) video-frames from all yt-dlp supported streaming sites: https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md#supported-sites + Implemented algorithm from scratch for auto-extracting resolution specific streamable URLs for pipelineing. + Implemented logic for auto-calculating `best` and `worst` resolutions. + Added new `ytv_metadata` global parameter to CamGear for accessing video's metadata(such as duration, title, description) on-the-go. +⚠️ Playlists are still unsupported. - **WebGear_RTC:** * Implemented a new easy way of defining Custom Streaming Class with suitable source(such as OpenCV): + Added new `custom_stream` attribute with WebGear_RTC `options` parameter that allows you to easily define your own Custom Streaming Class with suitable source(such as OpenCV). + This implementation supports repeated Auto-Reconnection or Auto-Refresh out-of-the-box. + This implementation is more user-friendly and easy to integrate within complex APIs. + This implementation requires at-least `read()` and `stop()` methods implemented within Custom Streaming Class, otherwise WebGear_RTC will throw ValueError. + This implementation supports all vidgear's VideoCapture APIs readily as input. - **Maintenance:** * Added new `.gitignore` for specifying intentionally untracked files to ignore + Added more files entries to `.gitignore`. * Added new `.gitattributes` to manage how Git reads line endings. + Enabled `auto` default behavior, in case people don't have `core.autocrlf` set. + Enforced LF line-endings for selective files types. + Added Binary data files that specifies they are not text, and git should not try to change them. + Added Language aware diff headers. + Added Linguist language overrides. - **Docs:** * Added bonus example to add real-time file audio encoding with VideoGear and Stabilizer class. * Added complete usage docs with new CamGear's Internal Class with YT-DLP backend. * Added instructions to extract video's metadata in CamGear. * Added donation link in page footer with bouncing heart animation through pure CSS. * Added info about critical changes in `v0.2.4` and above installation through new announcement bar. * Added related usage docs for new WebGear_RTC custom streaming class. * Added changes for upgrading mkdocs-material from `v7.x` to newer `v8.x`. * Added outdated version warning block. # Updates/Improvements ⚡️ - CamGear: * Added `is_livestream` global YT_backend parameters. * Added default options for yt-dlp for extracting info_dict(metadata) of the video as a single JSON line. * Completely removed old logic for extracting streams using pafy. * Removed all dead code related to streamlink backend. - Setup.py: * Moved all API specific dependencies to `extra_requires` under the name `"core"`. **[PR #268 by @zpapakipos]** * Added rule to replace GitHub heading links in description. * Updated `extra_require` dependencies. * Removed `streamlink` dependency. * Removed `pafy` dependency. * Removed `pyzmq` from latest_version group. * Updated SEO Keywords. - Docs: * Re-written `pip` and `source` installation docs. * Added warning for using `-disable_force_termination` flag for short duration videos. * Added `permalink_title` entry to mkdocs.yml. * Updated CamGear parameters. * Updated Admonitions with related information. * Updated Functional Block Diagram(`gears_fbd.png`) image. * Updated installation instructions. * Updated Advanced examples using WebGear_RTC's custom streaming class. * Updated code highlighting. * Updated zenodo badge. * Updated BibTex for project citation. * Replaced incorrect API parameter docs. * Updated WebGear_RTC parameters. - CI: * Updated CI tests for new WebGear_RTC custom streaming class. * Restored `test_stream_mode` CamGear test. * Updated Streaming Sites test links. * Added more tests cases. - Maintenance: * Updated spacing in logger formatting. * Renamed Asyncio Helper logger name. * Changed logging colors. * Updated logging messages. # Breaking Updates/Changes 💥 - Installation command with `pip` has been changed in `v0.2.4`: * The legacy `pip install vidgear` command now installs critical bare-minimum dependencies only. Therefore in order to automatically install all the API specific dependencies as previous versions, use `pip install vidgear[core]` command instead. - CamGear: * Removed `streamlink` backend support from `stream_mode` in favor of more reliable CamGear's Internal YT-DLP backend class for extracting metadata from Streaming URLs. + CamGear will raise `ValueError` if streaming site URL is unsupported by yt-dlp backend. + CamGear will raise `ValueError` if `yt-dlp` isn't installed and `stream_mode` is enabled. * Removed automatic enforcing of GStreamer backend for YouTube-livestreams and made it optional. + The CamGear will not raise ValueError if GStreamer support is missing in OpenCV backends. - WebGear_RTC: * Removed support for assigning Custom Media Server Class(inherited from aiortc's VideoStreamTrack) in WebGear_RTC through its `config` global parameter. * WebGear_RTC API will now throws ValueError if `source` parameter is NoneType as well as `custom_stream` attribute is undefined. - Helper: * Removed `restore_levelnames` method. * Removed `youtube_url_validator` helper method. # Bug-fixes 🐛 - CamGear: * Fixed KeyError Bug for missing attributed in meta_data json in some streaming sites. - Helper: * Removed unused imports. - Docs: * Removed slugify from mkdocs which was causing invalid hyperlinks in docs. * Fixed GitHub hyperlinks in README.md. * Fixed hyperlink in announcement bar. * Fixed content tabs failing to work. * Fixed line-endings and usage example code. * Removed any `pafy` and `streamlink` references. * Fixed context and typos. - CI: * Fixed NameError bugs in WebGear_RTC CI test. - Maintenance: * Removed dead logger code causing Python's Built-in logging module to hide logs. * Removed unused `logging` import. * Updated code comments.
- Loading branch information