stabbedbybrick / freevine

A Download Utility for Free Streaming Services
MIT License
170 stars 30 forks source link

crackle issue #74

Closed BobHasNoSoul closed 8 months ago

BobHasNoSoul commented 8 months ago

Describe the bug when attempting to download from crackle.com you get random errors (some links work just fine but others most of them tend to give you this error output)

for example entering the following command

python3 freevine.py get -m https://www.crackle.com/watch/75a74c7d-566e-47f8-8724-9ace291c2d4f/dismissed

❯_freevine v1.1.7

14:45:04.057 INFO : CRACKLE 14:45:04.060 INFO : + Adding service profile Traceback (most recent call last): File "freevine.py", line 15, in cli() File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1157, in call return self.main(args, kwargs) File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1078, in main rv = self.invoke(ctx) File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1688, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1434, in invoke return ctx.invoke(self.callback, ctx.params) File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 783, in invoke return __callback(args, kwargs) File "/mnt/h/freevine/utils/commands.py", line 90, in get Service(config, kwargs) File "/mnt/h/freevine/services/crackle/crackle.py", line 50, in init self.get_options() File "/mnt/h/freevine/services/crackle/crackle.py", line 222, in get_options downloads, title = get_downloads(self) File "/mnt/h/freevine/utils/options.py", line 163, in get_downloads content, title = stream.get_content(stream.url) File "/mnt/h/freevine/services/crackle/crackle.py", line 165, in get_content content = self.get_movies(self.url) File "/mnt/h/freevine/services/crackle/crackle.py", line 109, in getmovies id=r["data"][0]["id"], KeyError: 'data'

To Reproduce Steps to reproduce the behavior:

  1. open the terminal window and navigate to the freevine dir and then execute the following command

python3 freevine.py get -m https://www.crackle.com/watch/75a74c7d-566e-47f8-8724-9ace291c2d4f/dismissed

Expected behavior for it to download the file, note i have tried this on other crackle videos such as https://www.crackle.com/watch/00ac6b7d-094f-46f3-9486-6abb64a244c0/the-rise-and-fall-of-the-krays and it works as intended.

Screenshots n/a

Additional context n/a

any help with this would be awesome but again it isnt urgent.. thank you for a great tool you internet legend.

stabbedbybrick commented 8 months ago

For Crackle , it's especially important to get the URLs from the title page of whatever movie or show you're looking to download, not from the frontpage. If you search for the title, either on site or with freevine.py search crackle "dismissed", you'll get the correct URL every time:

python freevine.py search crackle "dismissed"

❯_freevine v1.1.7

    CRACKLE
    Title: Dismissed
    Type: Movie
    Synopsis: A discouraged high school teacher is thrilled by an honor student’s arrival until he realizes how far the vengeful scholar will go for a perfect
GPA.
    Link: https://www.crackle.com/details/06750f07-a2e8-4fa2-9251-90923382cf44/dismissed

I also noticed that you're using Python3.8, and I can't guarantee everything will work correctly with such an old version.

BobHasNoSoul commented 8 months ago

thank you so much i cant beleive i didnt realise this.. and yes it is working now