erdnaxeli / castblock

Automatically skip sponsor segments and ads in YouTube videos playing on Chromecast.
MIT License
182 stars 20 forks source link

Castblock not working for newer chromecast models #53

Closed shawntavious closed 1 year ago

shawntavious commented 1 year ago

I have two chromecast models. The newer one is the "Chromecast with Google TV (HD)" and the older one is a Chromecast (2nd generation). On the older one castblock is working perfectly. Skipping sponsor segments, skipping ads, muting ads, etc all work. See logs below

pi@raspberrypi:~/castblock $ docker compose up
[+] Running 1/0
 ⠿ Container castblock-castblock-1  Created                                                       0.0s
Attaching to castblock-castblock-1
castblock-castblock-1  | 2023-01-24T02:56:21.337107Z   INFO - castblock.chromecast: Found go-chromecast at /usr/bin/go-chromecast.
castblock-castblock-1  | 2023-01-24T02:56:21.337507Z   INFO - castblock.chromecast: Starting the go-chromecast server.
castblock-castblock-1  | 2023-01-24T02:56:21.348141Z  DEBUG - http.client: Performing request -- method: "GET", host: "127.0.0.1", port: 8011, resource: "/"
castblock-castblock-1  | 2023-01-24T02:56:21.850503Z  DEBUG - http.client: Performing request -- method: "GET", host: "127.0.0.1", port: 8011, resource: "/"
castblock-castblock-1  | 2023-01-24T02:56:21.855412Z   INFO - castblock.chromecast: The go-chromecast server is up
castblock-castblock-1  | 2023-01-24T02:56:22.326149Z  DEBUG - castblock.blocker: Checking for new devices
castblock-castblock-1  | 2023-01-24T02:56:22.326171Z  DEBUG - http.client: Performing request -- method: "GET", host: "127.0.0.1", port: 8011, resource: "/devices"
castblock-castblock-1  | 2023-01-24T02:56:25.332541Z   INFO - castblock.blocker: New device found -- name: "Bedroom TV", uuid: "fcbed40afa6af4ec27caeb676bc20030"
castblock-castblock-1  | 2023-01-24T02:56:25.332547Z   INFO - castblock.blocker: Connect to device -- name: "Bedroom TV", uuid: "fcbed40afa6af4ec27caeb676bc20030"
castblock-castblock-1  | 2023-01-24T02:56:25.332574Z  DEBUG - http.client: Performing request -- method: "POST", host: "127.0.0.1", port: 8011, resource: "/connect?uuid=fcbed40afa6af4ec27caeb676bc20030"
castblock-castblock-1  | 2023-01-24T02:56:28.426234Z   INFO - castblock.chromecast: Starting go-chromecast watcher -- name: "Bedroom TV", uuid: "fcbed40afa6af4ec27caeb676bc20030"
castblock-castblock-1  | 2023-01-24T02:57:11.122675Z  DEBUG - castblock.blocker: Received message -- application: "YouTube"
castblock-castblock-1  | 2023-01-24T02:57:11.122684Z  DEBUG - castblock.blocker: Youtube video playing -- id: "6cdd2qGlIrE", current_time: 141.92
castblock-castblock-1  | 2023-01-24T02:57:11.122738Z  DEBUG - http.client: Performing request -- method: "GET", host: "sponsor.ajay.app", port: 443, resource: "/api/skipSegments?categories=%5B%22sponsor%22%2C%22selfpromo%22%5D&videoID=6cdd2qGlIrE"
castblock-castblock-1  | 2023-01-24T02:57:20.127653Z  DEBUG - castblock.blocker: Received message -- application: "YouTube"
castblock-castblock-1  | 2023-01-24T02:57:20.127663Z  DEBUG - castblock.blocker: Youtube video playing -- id: "6cdd2qGlIrE", current_time: 84.232
castblock-castblock-1  | 2023-01-24T02:57:20.127674Z   INFO - castblock.blocker: Found a sponsor segment. -- id: "6cdd2qGlIrE", start: 33.205, end: 140.936
castblock-castblock-1  | 2023-01-24T02:57:20.127679Z   INFO - castblock.blocker: Segment meets criteria, skipping it. -- id: "6cdd2qGlIrE", start: 33.205, end: 140.936
castblock-castblock-1  | 2023-01-24T02:57:20.127730Z  DEBUG - http.client: Performing request -- method: "POST", host: "127.0.0.1", port: 8011, resource: "/seek-to?uuid=fcbed40afa6af4ec27caeb676bc20030&seconds=138.936"
castblock-castblock-1  | 2023-01-24T02:57:20.388414Z  DEBUG - castblock.chromecast: Unhandled payload: Missing JSON attribute: status
castblock-castblock-1  |   parsing Castblock::Chromecast::WatchMessagePayload at line 1, column 1
castblock-castblock-1  | 2023-01-24T02:57:22.198898Z  DEBUG - castblock.blocker: Received message -- application: "YouTube"
castblock-castblock-1  | 2023-01-24T02:57:24.726296Z  DEBUG - castblock.blocker: Youtube video playing -- id: "6cdd2qGlIrE", current_time: 138.857
castblock-castblock-1  | 2023-01-24T02:57:24.726308Z   INFO - castblock.blocker: Found a sponsor segment. -- id: "6cdd2qGlIrE", start: 33.205, end: 140.936
castblock-castblock-1  | 2023-01-24T02:57:26.757559Z  DEBUG - castblock.blocker: Received message -- application: "YouTube"
castblock-castblock-1  | 2023-01-24T02:57:26.757568Z  DEBUG - castblock.blocker: Youtube video playing -- id: "6cdd2qGlIrE", current_time: 141.031

But for the newer chromcast cast block is not working at all. See logs below:

castblock-castblock-1  | 2023-01-24T03:19:36.357903Z   INFO - castblock.chromecast: Starting go-chromecast watcher -- name: "Living Room TV", uuid: "e61b732b7e3824013ff2b7af74b0ed6e"
castblock-castblock-1  | 2023-01-24T03:19:36.608512Z  DEBUG - castblock.chromecast: Unhandled payload: Missing JSON attribute: status
castblock-castblock-1  |   parsing Castblock::Chromecast::WatchMessagePayload at line 1, column 1
castblock-castblock-1  | 2023-01-24T03:19:36.627587Z  DEBUG - castblock.blocker: Received message -- application: "YouTube"
castblock-castblock-1  | 2023-01-24T03:19:36.627593Z  DEBUG - castblock.blocker: Youtube video playing -- id: "", current_time: 14.05
castblock-castblock-1  | 2023-01-24T03:19:36.627680Z  DEBUG - http.client: Performing request -- method: "GET", host: "sponsor.ajay.app", port: 443, resource: "/api/skipSegments?categories=%5B%22sponsor%22%2C%22selfpromo%22%5D&videoID="
castblock-castblock-1  | 2023-01-24T03:19:36.868090Z  ERROR - castblock.sponsorblock: Error from Sponsorblock -- status_code: 400, video_id: ""
castblock-castblock-1  | 2023-01-24T03:19:38.404581Z  DEBUG - castblock.chromecast: Unhandled payload: Missing JSON attribute: volume
castblock-castblock-1  |   parsing Castblock::Chromecast::WatchMessagePayload::PayloadStatus at line 1, column 48
castblock-castblock-1  |   parsing Castblock::Chromecast::WatchMessagePayload#status at line 1, column 38
castblock-castblock-1  | 2023-01-24T03:19:38.725259Z  DEBUG - castblock.blocker: Received message -- application: "YouTube"
castblock-castblock-1  | 2023-01-24T03:19:38.725269Z  DEBUG - castblock.blocker: Youtube video playing -- id: "", current_time: 14.05
castblock-castblock-1  | 2023-01-24T03:19:38.725319Z  DEBUG - http.client: Performing request -- method: "GET", host: "sponsor.ajay.app", port: 443, resource: "/api/skipSegments?categories=%5B%22sponsor%22%2C%22selfpromo%22%5D&videoID="
castblock-castblock-1  | 2023-01-24T03:19:38.822977Z  ERROR - castblock.sponsorblock: Error from Sponsorblock -- status_code: 400, video_id: ""

For some reason it looks like it's not able to get the videoIDs which is causing the GET request to return 400. According to the sponserblock FAQ 400 means the inputs are wrong: https://wiki.sponsor.ajay.app/w/FAQ#Why_am_I_getting_an_error_when_trying_to_submit_a_segment?

Installed it with docker pull erdnaxeli/castblock:latest This is my docker compose file

version: '3.3'
services:
  castblock:
    network_mode: host
    image: erdnaxeli/castblock
    environment:
      - CATEGORIES=sponsor,selfpromo
      - MUTE_ADS=true
      - DEBUG=true
      - OFFSET=2
      - SKIP_ADS=true
      - SPONPSORBLOCK_SERVER=https://sponpsor.ajay.app

Any idea why some chromecasts work and others don't or how to fix?

shawntavious commented 1 year ago

Already mentioned in #24. Closing.