Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[rai] changed the extractor for the new site and dismisison of the old one #11790

Closed
wants to merge 1 commit into from

Conversation

timendum
Copy link
Contributor

Before submitting a pull request make sure you have:

In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under Unlicense. Check one of the following options:

  • I am the original author of this code and I am willing to release it under Unlicense
  • I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

  • Bug fix
  • Improvement
  • New extractor
  • New feature

Description of your pull request and other information

Rai changed its streaming website to raiplay.it and axed the old one, I heavy changed the extractor to reflect the new changes.

This is a follow up of #11134 , I've dropped the old one and fixed the conflicts.

All the tests pass in Italy, maybe some media can be geo-restricted.

@timendum
Copy link
Contributor Author

@dstftw can you check?

Thansk

@timendum
Copy link
Contributor Author

@dstftw
I've imported some code from the older extractor for better handling of old urls.

Can you check now?

Should I squash the commits?

Thanks.

@dstftw
Copy link
Collaborator

dstftw commented Jan 30, 2017

Should I squash the commits?

Yes.

@timendum
Copy link
Contributor Author

@dstftw
Commits squashed.

@rabblac
Copy link
Contributor

rabblac commented Feb 7, 2017

Still open? Is anything blocking this? @dstftw

@dstftw
Copy link
Collaborator

dstftw commented Feb 18, 2017

Check code with flake8.

@timendum
Copy link
Contributor Author

Done and squashed.

There are still some lines longer then 100 chars, but they are test cases and regexps.

formats = None
duration = None
if 'video' in media:
formats
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's this for?

video_id = self._match_id(url)
formats = None
duration = None
if 'video' in media:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is pointless. If no formats can be extracted extraction should stop immediately.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's an initialization of a variable, I see no harm in it, but I'm open to suggestions.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a conditional expression that allows to skip formats extraction. As I've already said this is pointless since valid list of formats must be always present. None formats is not allowed.

'formats': formats,
'subtitles': subtitles,
}
canonical_url = self._og_search_url(webpage)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the point of this? canonical_url is the same as url.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not in the first test case and in every case where a query parameter is added to url.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Everything apart from query is the same and this unnecessary webpage downloading should be removed.

'formats': formats,
'subtitles': subtitles,
}
canonical_url = self._og_search_url(webpage)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Everything apart from query is the same and this unnecessary webpage downloading should be removed.

video_id = self._match_id(url)
formats = None
duration = None
if 'video' in media:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a conditional expression that allows to skip formats extraction. As I've already said this is pointless since valid list of formats must be always present. None formats is not allowed.

@timendum
Copy link
Contributor Author

I've hopefully resolved all the issue:

  • The canonical url is now obtained removing the query with urlparse
  • An ExtractorError is thrown if no video is found

@dstftw dstftw closed this in b8d8cce Apr 1, 2017
khavishbhundoo referenced this pull request in khavishbhundoo/youtube-dl Jun 14, 2017
* [cbsinteractive] fix extractor

* [cbsinteractive] update test cases

* [cbsinteractive] extract formats with `CBSIE`

* [extractor/common] Fix rtmp and rtsp formats' URLs in _extract_wowza_formats

* [vier] Extract more info

Extract the `episode_number` and `upload_date`. Also extract the real
`description`.

* [vier] Relax regexes and extract more metadata (closes #12539)

* [jsinterp] Add support for quoted names and indexers (closes #13123, closes #13130)

* [ChangeLog] Actualize

* release 2017.05.18

* [ChangeLog] Fix typo

* [jsinterp] Fix typo and cleanup regexes (closes #13134)

* [ChangeLog] Actualize

* release 2017.05.18.1

* [mitele] Update app key regex

* [hitbox] Add support for smashcast.tv (closes #13154)

* [njpwworld] Fix extraction (closes #13162)

* [toypics] Fix extraction

* [toypics] Improve and modernize

* [adobepass] Add support for Brighthouse MSO

* [toggle] Relax _VALID_URL (closes #13172)

* [youtube] Fix DASH manifest signature decryption (closes #8944)

* [youtube] Modernize

* [streamcz] Add support for subtitles

* [downloader/external] Pass -loglevel to ffmpeg downloader (closes #13183)

* Credit @zurfyx for atresplayer improvements (#12548)

* Credit @mphe for streamango (#12643)

* Credit @fredbourni for noovo (#12792)

* [ChangeLog] Actualize

* release 2017.05.23

* Credit @timendum for rai (#11790) and mediaset (#12964)

* Credit @gritstub for vevo fix (#12879)

* [cbsnews] fix extraction for 60 Minutes videos

* [vimeo] Fix formats' sorting (closes #13189)

* [postprocessor/ffmpeg] Fix metadata filename handling on Python 2

Fixes #13182

* [udemy] Fix extraction for outputs' format entries without URL (closes #13192)

* [youku] Fix extraction (closes #13191)

* [utils] Recognize more patterns in strip_jsonp()

Used in Youku Show pages

* [youku:show] Fix extraction

* [tudou] Merge into youku extractor (fixes #12214)

Also, there are no tudou playlists anymore. All playlist URLs points to youku
playlists.

* [bbc] Add support for authentication

* Revert "[youtube] Don't use the DASH manifest from 'get_video_info' if 'use_cipher_signature' is True (#5118)"

This reverts commit 87dc451.

* [ChangeLog] Update after the fix for #11381

* [ChangeLog] Actualize

* release 2017.05.26

* [cbsnews] Fix extraction (closes #13205)

* [youku] Extract more metadata (closes #10433)

* [adn] fix formats extraction

* [utils] Drop an compatibility wrapper for Python < 2.6

addinfourl.getcode is added since Python 2.6a1. As youtube-dl now
requires 2.6+, this is no longer necessary.

See python/cpython@9b0d46d

* [cbsinteractive] Relax _VALID_URL (closes #13213)

* [beam:vod] Add extractor

* [beam] Improve and add support for mixer.com (closes #13032)

* [dvtv] Parse adaptive formats as well

The old code hit an error when it attempted to parse the string
"adaptive" for video height. Actually parsing the returned playlists is
a good idea because it adds more output formats, including some
audio-only-ones.

* [dvtv] Improve and fix playlists support (closes #13063)

* [medialaan] Fix videos with missing videoUrl

A rough trick to get around the two different json styles medialaan seems to be using.
Fix for these example videos:
https://vtmkzoom.be/video?aid=45724
https://vtmkzoom.be/video?aid=45425

* [medialaan] PEP 8 (closes #12774)

* [gaskrank] Fix extraction

* [gaskrank] Improve (closes #12493)

* [abcnews] Add support for embed URLs

* [abcnews] Improve and remove duplicate test (closes #12851)

* [xhamster] Extract categories (closes #11728)

* [xhamster] Fix author and like/dislike count extraction

* [xhamster] Simplify (closes #13216)

* [youtube] Parse player_url if format URLs are encrypted or DASH MPDs are requested

Fixes #13211

* [ChangeLog] Actualize

* release 2017.05.29

* [README.md] Add an example for how to use .netrc on Windows

That's a Python bug: http://bugs.python.org/issue28334
Most likely it will be fixed in Python 3.7: python/cpython#123

* [README.md] Mention http_dash_segments protocol

* [packtpub] Fix authentication(closes #13240)

* [drbonanza] Fix extraction (closes #13231)

* [francetv] Relax _VALID_URL

* [1tv] Lower preference for http formats (closes #13246)

* [youtube] Improve chapters extraction (closes #13247)

* [safari] Fix typo (closes #13252)

* [YoutubeDL] Don't emit ANSI escape codes on Windows

* [godtv] Remove extractor (closes #13175)

* [pornhub:playlist] Fix extraction (closes #13281)

* [pornhub:uservideos] Add missing raise

* [bandcamp:weekly] Add extractor

* [bandcamp:weekly] Improve and extract more metadata (closes #12758)

* Credit @adamvoss for bandcamp:weekly (#12758)

* Credit @mikf for beam:vod (#13032)

* Credit @jktjkt for dvtv formats (#13063)

* [ChangeLog] Actualize

* release 2017.06.05

* [tvplayer] Fix extraction (closes #13291)

* [rtlnl] Improve _VALID_URL (closes #13295)

* [streamango] Make title optional

* [streamango] Skip download for test (closes #13292)

* [README.md] Clarify output template references (closes #13316)

* [README.md] Improve man page formatting

* [YoutubeDL] Sanitize more fields (#13313)

* [liveleak] Ensure height is int (closes #13313)

* [safari] Improve authentication detection (closes #13319)

* [sohu] Fix numeric fields

* [flickr] Ensure format id is string

* [foxgay] Ensure height is int

* [gfycat] Ensure filesize is int

* [golem] Ensure format id is string

* [jove] Ensure comment count is int

* [sexu] Ensure height is int

* [turbo] Ensure format id is string

* [extractor/common] Return unicode string from _match_id

* [extractor/generic] Ensure format id is unicode string

* [msn] Fix formats extraction

* [newgrounds] Improve formats and uploader extraction (closes #13346)

* [newgrounds:playlist] Add extractor (closes #10611)

* [utils] Improve unified_timestamp

* [newgrounds] Extract more metadata (closes #13232)

* [rutv] Add support for testplayer.vgtrk.com (closes #13347)

* [xfileshare] Modernize and pass referrer

* [xfileshare] Add support for rapidvideo (closes #13348)

* [compat] Introduce compat_HTMLParseError

* [utils] Handle HTMLParseError in extract_attributes (closes #13349)

* [xfileshare] PEP 8

* [ChangeLog] Actualize

* release 2017.06.12

* [compat] Add compat_HTMLParseError to __all__

* [corus] Add support for history.ca (closes #13359)

* [corus] Add support for showcase.ca
@timendum timendum deleted the rai branch December 19, 2017 14:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants