requested changes Jun 18, 2026
bastimeyer
changed the title
plugins: add douyu.com live streaming plugin
plugins.douyutv: restore plugin with new implementation
- Return all stream qualities instead of single rate parameter - Remove @pluginargument, implement stream_weight() with QUALITY_WEIGHTS - URL matcher: remove dyshid query param, use parse_qsd instead - Delete _get_real_rid (all room IDs are numeric) - Remove all superfluous comments - Extract constants as class attributes (HEVC, FA, IVE) - Add validate.url(scheme='https') for rtmp_url - Replace NoStreamsError with return - Fix betard API schema: cate_name can be null - Fix offline room: API returns empty string for data - Add declarations (id, author, category, title) - Test: remove generic non-matching URLs and dyshid test cases
bastimeyer
changed the title
plugins.douyutv: restore plugin with new implementation
plugins.douyu: restore plugin with new implementation
Some CDN nodes (e.g., edgesrv.com:8443) are not compatible with OpenSSL 3.0's default security level (SECLEVEL=2), causing SSL handshake failures when downloading streams in --player mode. Mount TLSSecLevel1Adapter (SECLEVEL=1) for the CDN domain after obtaining the stream URL, similar to the approach used by the filmon plugin.
Previously, the auth token was computed with one timestamp, but the POST request to getH5PlayV1 used a different (newer) timestamp for the tt field. This mismatch caused the API to reject requests as invalid, resulting in intermittent 403 Forbidden errors. Restructure _request_stream to be self-contained: each call now fetches fresh encryption parameters, computes the auth token, and sends the POST request within the same method, ensuring enc_data, auth, and tt are always consistent.
bastimeyer
changed the title
plugins.douyu: restore plugin with new implementation
plugins.douyu: re-introduce plugin with new implementation
Closed
5 tasks