YouTube full size 900x900 image was never being selected, images were always 100x100, due to HTMLParser interating till all matches were found. 900x900 was found first, then 100x100px image, which was the final result. Now all results are saved in a list, the first find is the selected result.
YouTube channel description and link were not being discovered, or saved to the sqlite DB. Desc is now retreived from the YouTube channel webpage in the same manner as the cover image link, and the link is the YouTube channel URL.
for extensions to be able to register custom downloaders,
not only resolving episode to a real download url.
refactor {escapist,youtube,vimeo}.get_real_download_url to use registry.
* Fixed get_real_cover to work with the new api-less youtube fetching
* get_real_cover now uses the channel id fetched from the feed
* The regex has been replaced with a dedicated html parser
The link being parsed for the YouTube cover art image is sometimes only 100x100px, it appears to be inconsistent from show to show, sometimes 100x100, and sometimes 900x900px. There is a link in the channel page source that appears to always have a 900x900px image.
This change looks for the "new" link first, to grab the higher quality image. If not found it falls back to the original link.
Here are two examples of YouTube channels showing the links to the two different sized images:
The Ben Heck Show
https://www.youtube.com/user/thebenheckshow
Element 14
https://www.youtube.com/user/element14
This adds auto-discovery of the channel ID and new-style feed for old-style
(username-based) feed URLs when the V3 API key is available, and also adds an
extra menu item for migrating subscriptions.
The current Sailfish UI is maintained as part of gPodder 4 in
gpodder-core, gpodder-ui-qml and gpodder-sailfish. The code
removed here was part of the old, Qt4-based Sailfish Alpha
SDK-based port that was still using PySide and Python 2.
1) Redid the youtube video format list (added fallbacks for each quality
setting) and added a new config key youtube.preferred_format_ids, that
accepts a list of supported quality ids.
2) Added a GUI setting switcher that lets a user pick between predefined
video quality settings and respects the 'custom' setting. 'Custom'
should currently only be used if the user prefers 3D formats or 3GP.
All other variants are in the normal settings with sane fallbacks.
Existing users will not feel any change (current fmt=18 default is
respected). Only the default fallback for get_real_download_url() was
changed (to 720p), but that will never be called unless the user clears
her youtube.preferred_fmt_id variable.
After a year of basically no work towards Maemo 5 support,
I consider gPodder 3-on-Maemo 5 something that we won't ever
do, so the remaining codes goes. This also cleans up some
dead code in the Gtk UI that's been sitting there.
If anybody wants to step up and do something about that, be
my guest. If anything, I'd assume that if anything on the N900,
gPodder 3-on-Nemo Mobilemight be feasible, and in that case, it
should be "just like Harmattan" in most ways.
YouTube protects pages that contain violence, etc.. by
requiring users to login to prove they are over 18. We
can't determine the fmt_url_map in that case, so this
patch adds a better error message to the failed download.
YouTube have once again changed their internal
data structures (this time it's "fmt_map"). This
patch fixes these issues by updating the list of
formats known by gPodder and YouTube.
The following command has been used:
grep -r '2005-2009 Thomas Perl and the gPodder Team' * | cut -d: -f1 |
xargs sed -i -e 's/2005-2009 Thomas Perl and the gPodder Team/2005-2010
Thomas Perl and the gPodder Team/g'
Users can now set their preferred YouTube fmt_id
for downloads of YouTube videos. The default has
been changed to 18, because that's a known-good
video format that should work on most machines.
Use gpodder.ui.{desktop,diablo,fremantle} for
detecting which environment and interface to use.
Fremantleized versions of the episode selector
and podcast directory windows roughly done.
Remove the GTK+ dependency in gpodder.youtube by making the
only function that is in there fake a opml.Importer-like object,
so we can use the model from gpodder.gtkui.opml to display the
results instead of generating the model inside gpodder.youtube.