NanoMeow / QuickReports

Quick issue reports manager
GNU General Public License v3.0
16 stars 4 forks source link

play.acast.com #3794

Open NanoMeow opened 4 years ago

NanoMeow commented 4 years ago

Basic Information

Test link: https://play.acast.com/s/theintelligencepodcast/e6b7eb34-192f-42eb-9c1e-42c41797f806 Category: ads Reported from: United States Template version: 2

User Environment

Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 Extension: Nano Adblocker 1.0.0.142

Additional Message

press play => might get instream ads

If ads are to be played, https://media.acast.com/theintelligencepodcast/rakhineandruin-insurgencyinmyanmar/media.json returns json with ads as a populated object If no ads are to be played, https://media.acast.com/theintelligencepodcast/rakhineandruin-insurgencyinmyanmar/media.json returns json with ads as an empty object

Currently there is no way to force ads to be empty using uBo current scriptlets, so reporting this for reference.

liamengland1 commented 4 years ago

Well, apparently I do crappy research and I don't think this works. Disregard the above.

The times of the ads are received in the API request matching the below pattern. https://play-api.acast.com/livestitch/e6b7eb34-192f-42eb-9c1e-42c41797f806/*?Expires=

Sample response:

``` { "result": { "id": "e6b7eb34-192f-42eb-9c1e-42c41797f806/d085da710efea978d8bc3a6b8147ba33", "url": "https://stitcher.acast.com/livestitches/e6b7eb34-192f-42eb-9c1e-42c41797f806/d085da710efea978d8bc3a6b8147ba33.mp3?...", "stitchHash": "d085da710efea978d8bc3a6b8147ba33", "duration": 1379.39, "timeline": [ { "type": "ad", "isDynamic": true, "duration": 32.184239000000005, "payload": { "parts": [ { "localStart": 0, "startInStitch": 0, "duration": 30.066939, "payload": { "adId": "AdswizzAd24595", "adHash": "68b2b544d24dfa9261bbc284fcb8e7c0", "adPosition": "preroll", "image": "https://delivery-cdn-cf.adswizz.com/acast/CP_640x640_Banner_static_ad_c86b8b71-4775-4791-8ffb-d0bc8adf48b2.jpg", "clickUrl": "http://acast.deliveryengine.adswizz.com/companion/ck?..." } }, { "localStart": 30.066939, "startInStitch": 30.066939, "duration": 2.1173, "payload": { "image": "https://cdn.acast.com/images/ad-banner-black.jpg" } } ] }, "startInStitch": 0, "startInEpisode": 0, "hash": "413a844bc66fce2fa47d6287e16aad467c6f8ffd" }, { "type": "image", "id": null, "isInteractiveMedia": false, "isDynamic": false, "payload": { "image": "https://mediacdn.acast.com/assets/e6b7eb34-192f-42eb-9c1e-42c41797f806/cover-image-k9cldv25-theintelligence_square.jpg", "description": "" }, "duration": 539.5, "startInStitch": 32.184239000000005, "startInEpisode": 0, "hash": "bcc9a314d29ce804ff9e7720cfbb3ed7ff2f3e18" }, { "type": "ad", "isDynamic": true, "duration": 34.30153900000005, "payload": { "parts": [ { "localStart": 0, "startInStitch": 571.684239, "duration": 2.1173, "payload": { "image": "https://cdn.acast.com/images/ad-banner-black.jpg" } }, { "localStart": 2.1173, "startInStitch": 573.801539, "duration": 30.066939, "payload": { "adId": "AdswizzAd24595", "adHash": "0e4d19e1b92ca5401af5e09a7ffc8dca", "adPosition": "midroll", "image": "https://delivery-cdn-cf.adswizz.com/acast/CP_640x640_Banner_static_ad_c86b8b71-4775-4791-8ffb-d0bc8adf48b2.jpg", "clickUrl": "http://acast.deliveryengine.adswizz.com/companion/ck?..." } }, { "localStart": 32.18423900000005, "startInStitch": 603.8684780000001, "duration": 2.1173, "payload": { "image": "https://cdn.acast.com/images/ad-banner-black.jpg" } } ] }, "startInStitch": 571.684239, "startInEpisode": 539.5, "hash": "f50001b16ba1d78a4ac74eb4a8937f29241940f6" }, { "type": "image", "id": null, "isInteractiveMedia": false, "isDynamic": false, "payload": { "image": "https://mediacdn.acast.com/assets/e6b7eb34-192f-42eb-9c1e-42c41797f806/cover-image-k9cldv25-theintelligence_square.jpg", "description": "" }, "duration": 839.89, "startInStitch": 605.9857780000001, "startInEpisode": 539.5001, "hash": "d156a0ed676dc150b3271ab9225d893c8a383f4c" }, { "type": "ad", "isDynamic": true, "duration": 32.184238999999934, "payload": { "parts": [ { "localStart": 0, "startInStitch": 1445.875778, "duration": 2.1173, "payload": { "image": "https://cdn.acast.com/images/ad-banner-black.jpg" } }, { "localStart": 2.1172999999998865, "startInStitch": 1447.993078, "duration": 30.066939, "payload": { "adId": "AdswizzAd24595", "adHash": "97896cb1593635e755a4b751fb3c3109", "adPosition": "postroll", "image": "https://delivery-cdn-cf.adswizz.com/acast/CP_640x640_Banner_static_ad_c86b8b71-4775-4791-8ffb-d0bc8adf48b2.jpg", "clickUrl": "http://acast.deliveryengine.adswizz.com/companion/ck?..." } } ] }, "startInStitch": 1445.875778, "startInEpisode": 1379.3901, "hash": "8a581d9f68b688193b5c4d1d402c2bc80a3c6c1e" } ] } } ```

If all objects with "type": "ad" in the array timeline are removed, then the player does not know when the ads are playing and they can be skipped by the listener using the progress bar/controls.

jspenguin2017 commented 4 years ago

Theoretically, we could remove those ads entries and store them elsewhere, then it should be possible to automatically skip the ads since we know when they play. Although I'm not sure how complex this would be.