ruby-oembed 0.8.14 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +3 -0
- data/.travis.yml +2 -0
- data/CHANGELOG.rdoc +8 -0
- data/Gemfile +8 -0
- data/lib/oembed/http_helper.rb +64 -0
- data/lib/oembed/provider.rb +21 -62
- data/lib/oembed/provider_discovery.rb +28 -32
- data/lib/oembed/providers.rb +7 -5
- data/lib/oembed/providers/embedly_urls.yml +142 -8
- data/lib/oembed/version.rb +2 -2
- data/spec/cassettes/OEmbed_ProviderDiscovery.yml +14874 -3782
- data/spec/provider_discovery_spec.rb +22 -1
- data/spec/providers_spec.rb +66 -66
- data/spec/response_spec.rb +85 -75
- data/spec/spec_helper.rb +8 -2
- metadata +4 -4
- data/.rvmrc +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7678131f1e0f05d6cb7a47c34fc92965fbfafb93
|
4
|
+
data.tar.gz: a1c6ccaca29f4f001027eb6e51c1ca6016fafaac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 50f755636f113f3b8c05beffceb1de302ee3285b6b353a5d2d62577984372d3fc99844aabc4a89176aed9c919a0bbaf7c6c32c9b4ad78948c512d6f97e4e6a8f
|
7
|
+
data.tar.gz: 950b05436f26c660fd0d0978e8c9883625859b6e9f7c6cb977599c33cf8ced1b064f36ca4057ece5e7d31fb41e67e7dd3e6eae13532a2593bee919997a878216
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/CHANGELOG.rdoc
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
= CHANGELOG
|
2
2
|
|
3
|
+
== 0.9.0 - 12 December 2015
|
4
|
+
|
5
|
+
* Add support for HTTP redirects in ProviderDiscovery; Pull #39 (Sebastian de Castelberg) and Pull #38 (Sven Schwyn)
|
6
|
+
* Add support for a :max_redirects option to Provider#get and ProviderDiscovery#get (Marcos Wright-Kuhns)
|
7
|
+
* Change built-in YouTube, Slideshare, Yfrog, Scribd, & SoundCloud providers to use the https oembed endpoint; Pull #48 (Javan Makhmali)
|
8
|
+
* Change built-in Instagram provider to recognize URLs in the www subdomain; Pull #52 (Javan Makhmali)
|
9
|
+
* Updated the list of {Embedly}[http://embed.ly] URL schemes. (Marcos Wright-Kuhns)
|
10
|
+
|
3
11
|
== 0.8.14 - 25 April 2015
|
4
12
|
|
5
13
|
* Change built-in Vimeo provider to use https oembed endpoint; Pull #44 (Jonne Haß)
|
data/Gemfile
CHANGED
@@ -1,3 +1,11 @@
|
|
1
1
|
source "https://rubygems.org"
|
2
2
|
|
3
|
+
# Travis CI was running into several bundler-related bug
|
4
|
+
# * https://github.com/bundler/bundler/pull/3559
|
5
|
+
# * https://github.com/bundler/bundler/issues/3560
|
6
|
+
# that only apply to older versions of Bundler.
|
7
|
+
# I added this requirement so that future Travis CI builds
|
8
|
+
# fail quickly if an old version of bundler is being used.
|
9
|
+
gem 'bundler', '~>1.10'
|
10
|
+
|
3
11
|
gemspec
|
@@ -0,0 +1,64 @@
|
|
1
|
+
module OEmbed
|
2
|
+
module HttpHelper
|
3
|
+
|
4
|
+
private
|
5
|
+
|
6
|
+
# Given a URI, make an HTTP request
|
7
|
+
#
|
8
|
+
# The options Hash recognizes the following keys:
|
9
|
+
# :timeout:: specifies the timeout (in seconds) for the http request.
|
10
|
+
# :max_redirects:: the number of times this request will follow 3XX redirects before throwing an error. Default: 4
|
11
|
+
def http_get(uri, options = {})
|
12
|
+
found = false
|
13
|
+
remaining_redirects = options[:max_redirects] ? options[:max_redirects].to_i : 4
|
14
|
+
until found
|
15
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
16
|
+
http.use_ssl = uri.scheme == 'https'
|
17
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
18
|
+
http.read_timeout = http.open_timeout = options[:timeout] if options[:timeout]
|
19
|
+
|
20
|
+
methods = if RUBY_VERSION < "2.2"
|
21
|
+
%w{scheme userinfo host port registry}
|
22
|
+
else
|
23
|
+
%w{scheme userinfo host port}
|
24
|
+
end
|
25
|
+
methods.each { |method| uri.send("#{method}=", nil) }
|
26
|
+
req = Net::HTTP::Get.new(uri.to_s)
|
27
|
+
req['User-Agent'] = "Mozilla/5.0 (compatible; ruby-oembed/#{OEmbed::VERSION})"
|
28
|
+
res = http.request(req)
|
29
|
+
|
30
|
+
if remaining_redirects == 0
|
31
|
+
found = true
|
32
|
+
elsif res.is_a?(Net::HTTPRedirection) && res.header['location']
|
33
|
+
uri = URI.parse(res.header['location'])
|
34
|
+
remaining_redirects -= 1
|
35
|
+
else
|
36
|
+
found = true
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
case res
|
41
|
+
when Net::HTTPNotImplemented
|
42
|
+
raise OEmbed::UnknownFormat
|
43
|
+
when Net::HTTPNotFound
|
44
|
+
raise OEmbed::NotFound, uri
|
45
|
+
when Net::HTTPSuccess
|
46
|
+
res.body
|
47
|
+
else
|
48
|
+
raise OEmbed::UnknownResponse, res && res.respond_to?(:code) ? res.code : 'Error'
|
49
|
+
end
|
50
|
+
rescue StandardError
|
51
|
+
# Convert known errors into OEmbed::UnknownResponse for easy catching
|
52
|
+
# up the line. This is important if given a URL that doesn't support
|
53
|
+
# OEmbed. The following are known errors:
|
54
|
+
# * Net::* errors like Net::HTTPBadResponse
|
55
|
+
# * JSON::JSONError errors like JSON::ParserError
|
56
|
+
if defined?(::JSON) && $!.is_a?(::JSON::JSONError) || $!.class.to_s =~ /\ANet::/
|
57
|
+
raise OEmbed::UnknownResponse, res && res.respond_to?(:code) ? res.code : 'Error'
|
58
|
+
else
|
59
|
+
raise $!
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
end
|
data/lib/oembed/provider.rb
CHANGED
@@ -1,33 +1,36 @@
|
|
1
1
|
require 'cgi'
|
2
|
+
require 'oembed/http_helper'
|
3
|
+
|
2
4
|
module OEmbed
|
3
5
|
# An OEmbed::Provider has information about an individual oEmbed enpoint.
|
4
6
|
class Provider
|
5
|
-
|
7
|
+
include OEmbed::HttpHelper
|
8
|
+
|
6
9
|
# The String that is the http URI of the Provider's oEmbed endpoint.
|
7
10
|
# This URL may also contain a {{format}} portion. In actual requests to
|
8
11
|
# this Provider, this string will be replaced with a string representing
|
9
12
|
# the request format (e.g. "json").
|
10
13
|
attr_accessor :endpoint
|
11
|
-
|
14
|
+
|
12
15
|
# The name of the default format for all request to this Provider (e.g. 'json').
|
13
16
|
attr_accessor :format
|
14
|
-
|
17
|
+
|
15
18
|
# An Array of all URL schemes supported by this Provider.
|
16
19
|
attr_accessor :urls
|
17
|
-
|
20
|
+
|
18
21
|
# The human-readable name of the Provider.
|
19
22
|
#
|
20
23
|
# @deprecated *Note*: This accessor currently isn't used anywhere in the codebase.
|
21
24
|
attr_accessor :name
|
22
|
-
|
25
|
+
|
23
26
|
# @deprecated *Note*: Added in a fork of the gem, a while back. I really would like
|
24
27
|
# to get rid of it, though. --Marcos
|
25
28
|
attr_accessor :url
|
26
|
-
|
29
|
+
|
27
30
|
|
28
31
|
# Construct a new OEmbed::Provider instance, pointing at a specific oEmbed
|
29
32
|
# endpoint.
|
30
|
-
#
|
33
|
+
#
|
31
34
|
# The endpoint should be a String representing the http URI of the Provider's
|
32
35
|
# oEmbed endpoint. The endpoint String may also contain a {format} portion.
|
33
36
|
# In actual requests to this Provider, this string will be replaced with a String
|
@@ -35,7 +38,7 @@ module OEmbed
|
|
35
38
|
#
|
36
39
|
# If give, the format should be the name of the default format for all request
|
37
40
|
# to this Provider (e.g. 'json'). Defaults to OEmbed::Formatter.default
|
38
|
-
#
|
41
|
+
#
|
39
42
|
# For example:
|
40
43
|
# # If requests should be sent to:
|
41
44
|
# # "http://my.service.com/oembed?format=#{OEmbed::Formatter.default}"
|
@@ -47,7 +50,7 @@ module OEmbed
|
|
47
50
|
def initialize(endpoint, format = OEmbed::Formatter.default)
|
48
51
|
endpoint_uri = URI.parse(endpoint.gsub(/[\{\}]/,'')) rescue nil
|
49
52
|
raise ArgumentError, "The given endpoint isn't a valid http(s) URI: #{endpoint.to_s}" unless endpoint_uri.is_a?(URI::HTTP)
|
50
|
-
|
53
|
+
|
51
54
|
@endpoint = endpoint
|
52
55
|
@urls = []
|
53
56
|
@format = format
|
@@ -57,7 +60,7 @@ module OEmbed
|
|
57
60
|
# The url scheme can be either a String, containing wildcards specified
|
58
61
|
# with an asterisk, (see http://oembed.com/#section2.1 for details),
|
59
62
|
# or a Regexp.
|
60
|
-
#
|
63
|
+
#
|
61
64
|
# For example:
|
62
65
|
# @provider << "http://my.service.com/video/*"
|
63
66
|
# @provider << "http://*.service.com/photo/*/slideshow"
|
@@ -81,11 +84,12 @@ module OEmbed
|
|
81
84
|
# :timeout:: specifies the timeout (in seconds) for the http request.
|
82
85
|
# :format:: overrides this Provider's default request format.
|
83
86
|
# :url:: will be ignored, replaced by the url param.
|
87
|
+
# :max_redirects:: the number of times this request will follow 3XX redirects before throwing an error. Default: 4
|
84
88
|
def get(url, query = {})
|
85
89
|
query[:format] ||= @format
|
86
90
|
OEmbed::Response.create_for(raw(url, query), self, url, query[:format].to_s)
|
87
91
|
end
|
88
|
-
|
92
|
+
|
89
93
|
# Determine whether the given url is supported by this Provider by matching
|
90
94
|
# against the Provider's URL schemes.
|
91
95
|
def include?(url)
|
@@ -98,10 +102,11 @@ module OEmbed
|
|
98
102
|
|
99
103
|
query = query.merge({:url => ::CGI.escape(url)})
|
100
104
|
query.delete(:timeout)
|
105
|
+
query.delete(:max_redirects)
|
101
106
|
|
102
107
|
# TODO: move this code exclusively into the get method, once build is private.
|
103
108
|
this_format = (query[:format] ||= @format.to_s).to_s
|
104
|
-
|
109
|
+
|
105
110
|
endpoint = @endpoint.clone
|
106
111
|
|
107
112
|
if endpoint.include?("{format}")
|
@@ -126,56 +131,10 @@ module OEmbed
|
|
126
131
|
# @deprecated *Note*: This method will be made private in the future.
|
127
132
|
def raw(url, query = {})
|
128
133
|
uri = build(url, query)
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
http = Net::HTTP.new(uri.host, uri.port)
|
134
|
-
http.use_ssl = uri.scheme == 'https'
|
135
|
-
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
136
|
-
http.read_timeout = http.open_timeout = query[:timeout] if query[:timeout]
|
137
|
-
|
138
|
-
methods = if RUBY_VERSION < "2.2"
|
139
|
-
%w{scheme userinfo host port registry}
|
140
|
-
else
|
141
|
-
%w{scheme userinfo host port}
|
142
|
-
end
|
143
|
-
methods.each { |method| uri.send("#{method}=", nil) }
|
144
|
-
req = Net::HTTP::Get.new(uri.to_s)
|
145
|
-
req['User-Agent'] = "Mozilla/5.0 (compatible; ruby-oembed/#{OEmbed::VERSION})"
|
146
|
-
res = http.request(req)
|
147
|
-
|
148
|
-
#res = Net::HTTP.start(uri.host, uri.port) {|http| http.get(uri.request_uri) }
|
149
|
-
|
150
|
-
res.header['location'] ? uri = URI.parse(res.header['location']) : found = true
|
151
|
-
if max_redirects == 0
|
152
|
-
found = true
|
153
|
-
else
|
154
|
-
max_redirects -= 1
|
155
|
-
end
|
156
|
-
end
|
157
|
-
|
158
|
-
case res
|
159
|
-
when Net::HTTPNotImplemented
|
160
|
-
raise OEmbed::UnknownFormat, format
|
161
|
-
when Net::HTTPNotFound
|
162
|
-
raise OEmbed::NotFound, url
|
163
|
-
when Net::HTTPSuccess
|
164
|
-
res.body
|
165
|
-
else
|
166
|
-
raise OEmbed::UnknownResponse, res && res.respond_to?(:code) ? res.code : 'Error'
|
167
|
-
end
|
168
|
-
rescue StandardError
|
169
|
-
# Convert known errors into OEmbed::UnknownResponse for easy catching
|
170
|
-
# up the line. This is important if given a URL that doesn't support
|
171
|
-
# OEmbed. The following are known errors:
|
172
|
-
# * Net::* errors like Net::HTTPBadResponse
|
173
|
-
# * JSON::JSONError errors like JSON::ParserError
|
174
|
-
if defined?(::JSON) && $!.is_a?(::JSON::JSONError) || $!.class.to_s =~ /\ANet::/
|
175
|
-
raise OEmbed::UnknownResponse, res && res.respond_to?(:code) ? res.code : 'Error'
|
176
|
-
else
|
177
|
-
raise $!
|
178
|
-
end
|
134
|
+
http_get(uri, query)
|
135
|
+
rescue OEmbed::UnknownFormat
|
136
|
+
# raise with format to be backward compatible
|
137
|
+
raise OEmbed::UnknownFormat, format
|
179
138
|
end
|
180
139
|
end
|
181
140
|
end
|
@@ -1,15 +1,19 @@
|
|
1
|
+
require 'oembed/http_helper'
|
2
|
+
|
1
3
|
module OEmbed
|
2
4
|
# Uses {oEmbed Discover}[http://oembed.com/#section4] to generate a new Provider
|
3
5
|
# instance about a URL for which a Provider didn't previously exist.
|
4
6
|
class ProviderDiscovery
|
5
7
|
class << self
|
6
8
|
|
9
|
+
include OEmbed::HttpHelper
|
10
|
+
|
7
11
|
# Discover the Provider for the given url, then call Provider#raw on that provider.
|
8
12
|
# The query parameter will be passed to both discover_provider and Provider#raw
|
9
13
|
# @deprecated *Note*: This method will be made private in the future.
|
10
14
|
def raw(url, query={})
|
11
15
|
provider = discover_provider(url, query)
|
12
|
-
provider.raw(url,
|
16
|
+
provider.raw(url, query)
|
13
17
|
end
|
14
18
|
|
15
19
|
# Discover the Provider for the given url, then call Provider#get on that provider.
|
@@ -24,44 +28,36 @@ module OEmbed
|
|
24
28
|
#
|
25
29
|
# The options Hash recognizes the following keys:
|
26
30
|
# :format:: If given only discover endpoints for the given format. If not format is given, use the first available format found.
|
31
|
+
# :timeout:: specifies the timeout (in seconds) for the http request.
|
32
|
+
# :max_redirects:: the number of times this request will follow 3XX redirects before throwing an error. Default: 4
|
27
33
|
def discover_provider(url, options = {})
|
28
34
|
uri = URI.parse(url)
|
29
35
|
|
30
|
-
res =
|
31
|
-
|
36
|
+
res = http_get(uri, options)
|
37
|
+
format = options[:format]
|
38
|
+
|
39
|
+
if format.nil? || format == :json
|
40
|
+
provider_endpoint ||= /<link.*href=['"]*([^\s'"]+)['"]*.*application\/json\+oembed.*>/.match(res)[1] rescue nil
|
41
|
+
provider_endpoint ||= /<link.*application\/json\+oembed.*href=['"]*([^\s'"]+)['"]*.*>/.match(res)[1] rescue nil
|
42
|
+
format ||= :json if provider_endpoint
|
43
|
+
end
|
44
|
+
if format.nil? || format == :xml
|
45
|
+
# {The specification}[http://oembed.com/#section4] says XML discovery should have
|
46
|
+
# type="text/xml+oembed" but some providers use type="application/xml+oembed"
|
47
|
+
provider_endpoint ||= /<link.*href=['"]*([^\s'"]+)['"]*.*(application|text)\/xml\+oembed.*>/.match(res)[1] rescue nil
|
48
|
+
provider_endpoint ||= /<link.*(application|text)\/xml\+oembed.*href=['"]*([^\s'"]+)['"]*.*>/.match(res)[2] rescue nil
|
49
|
+
format ||= :xml if provider_endpoint
|
32
50
|
end
|
33
51
|
|
34
|
-
|
35
|
-
|
52
|
+
begin
|
53
|
+
provider_endpoint = URI.parse(provider_endpoint)
|
54
|
+
provider_endpoint.query = nil
|
55
|
+
provider_endpoint = provider_endpoint.to_s
|
56
|
+
rescue URI::Error
|
36
57
|
raise OEmbed::NotFound, url
|
37
|
-
when Net::HTTPSuccess
|
38
|
-
format = options[:format]
|
39
|
-
|
40
|
-
if format.nil? || format == :json
|
41
|
-
provider_endpoint ||= /<link.*href=['"]*([^\s'"]+)['"]*.*application\/json\+oembed.*>/.match(res.body)[1] rescue nil
|
42
|
-
provider_endpoint ||= /<link.*application\/json\+oembed.*href=['"]*([^\s'"]+)['"]*.*>/.match(res.body)[1] rescue nil
|
43
|
-
format ||= :json if provider_endpoint
|
44
|
-
end
|
45
|
-
if format.nil? || format == :xml
|
46
|
-
# {The specification}[http://oembed.com/#section4] says XML discovery should have
|
47
|
-
# type="text/xml+oembed" but some providers use type="application/xml+oembed"
|
48
|
-
provider_endpoint ||= /<link.*href=['"]*([^\s'"]+)['"]*.*(application|text)\/xml\+oembed.*>/.match(res.body)[1] rescue nil
|
49
|
-
provider_endpoint ||= /<link.*(application|text)\/xml\+oembed.*href=['"]*([^\s'"]+)['"]*.*>/.match(res.body)[2] rescue nil
|
50
|
-
format ||= :xml if provider_endpoint
|
51
|
-
end
|
52
|
-
|
53
|
-
begin
|
54
|
-
provider_endpoint = URI.parse(provider_endpoint)
|
55
|
-
provider_endpoint.query = nil
|
56
|
-
provider_endpoint = provider_endpoint.to_s
|
57
|
-
rescue URI::Error
|
58
|
-
raise OEmbed::NotFound, url
|
59
|
-
end
|
60
|
-
|
61
|
-
Provider.new(provider_endpoint, format || OEmbed::Formatter.default)
|
62
|
-
else
|
63
|
-
raise OEmbed::UnknownResponse, res.code
|
64
58
|
end
|
59
|
+
|
60
|
+
Provider.new(provider_endpoint, format || OEmbed::Formatter.default)
|
65
61
|
end
|
66
62
|
|
67
63
|
end
|
data/lib/oembed/providers.rb
CHANGED
@@ -136,7 +136,7 @@ module OEmbed
|
|
136
136
|
# OEmbed::Providers::Youtube.endpoint += "?iframe=0"
|
137
137
|
# * To require https embed code
|
138
138
|
# OEmbed::Providers::Youtube.endpoint += "?scheme=https"
|
139
|
-
Youtube = OEmbed::Provider.new("
|
139
|
+
Youtube = OEmbed::Provider.new("https://www.youtube.com/oembed?scheme=https")
|
140
140
|
Youtube << "http://*.youtube.com/*"
|
141
141
|
Youtube << "https://*.youtube.com/*"
|
142
142
|
Youtube << "http://*.youtu.be/*"
|
@@ -199,20 +199,22 @@ module OEmbed
|
|
199
199
|
Instagram = OEmbed::Provider.new("https://api.instagram.com/oembed", :json)
|
200
200
|
Instagram << "http://instagr.am/p/*"
|
201
201
|
Instagram << "http://instagram.com/p/*"
|
202
|
+
Instagram << "http://www.instagram.com/p/*"
|
202
203
|
Instagram << "https://instagr.am/p/*"
|
203
204
|
Instagram << "https://instagram.com/p/*"
|
205
|
+
Instagram << "https://www.instagram.com/p/*"
|
204
206
|
add_official_provider(Instagram)
|
205
207
|
|
206
208
|
# Provider for slideshare.net
|
207
209
|
# http://www.slideshare.net/developers/oembed
|
208
|
-
Slideshare = OEmbed::Provider.new("
|
210
|
+
Slideshare = OEmbed::Provider.new("https://www.slideshare.net/api/oembed/2")
|
209
211
|
Slideshare << "http://www.slideshare.net/*/*"
|
210
212
|
Slideshare << "http://www.slideshare.net/mobile/*/*"
|
211
213
|
add_official_provider(Slideshare)
|
212
214
|
|
213
215
|
# Provider for yfrog
|
214
216
|
# http://code.google.com/p/imageshackapi/wiki/OEMBEDSupport
|
215
|
-
Yfrog = OEmbed::Provider.new("
|
217
|
+
Yfrog = OEmbed::Provider.new("https://www.yfrog.com/api/oembed", :json)
|
216
218
|
Yfrog << "http://yfrog.com/*"
|
217
219
|
add_official_provider(Yfrog)
|
218
220
|
|
@@ -258,7 +260,7 @@ module OEmbed
|
|
258
260
|
add_official_provider(NFBCanada)
|
259
261
|
|
260
262
|
# Provider for scribd.com
|
261
|
-
Scribd = OEmbed::Provider.new("
|
263
|
+
Scribd = OEmbed::Provider.new("https://www.scribd.com/services/oembed")
|
262
264
|
Scribd << "http://*.scribd.com/*"
|
263
265
|
add_official_provider(Scribd)
|
264
266
|
|
@@ -274,7 +276,7 @@ module OEmbed
|
|
274
276
|
|
275
277
|
# Provider for soundcloud.com
|
276
278
|
# http://developers.soundcloud.com/docs/oembed
|
277
|
-
SoundCloud = OEmbed::Provider.new("
|
279
|
+
SoundCloud = OEmbed::Provider.new("https://soundcloud.com/oembed", :json)
|
278
280
|
SoundCloud << "http://*.soundcloud.com/*"
|
279
281
|
SoundCloud << "https://*.soundcloud.com/*"
|
280
282
|
add_official_provider(SoundCloud)
|
@@ -21,8 +21,10 @@
|
|
21
21
|
- http://*.deviantart.com/gallery/*
|
22
22
|
- http://*.deviantart.net/*/*.gif
|
23
23
|
- http://*.deviantart.net/*/*.jpg
|
24
|
+
- http://*.hosted.panopto.com/*
|
24
25
|
- http://*.iplayerhd.com/player/video/*
|
25
26
|
- http://*.iplayerhd.com/playerframe/*
|
27
|
+
- http://*.kaltura.com/*
|
26
28
|
- http://*.kastio.com/webcasts/*
|
27
29
|
- http://*.kinomap.com/*
|
28
30
|
- http://*.linkedin.com/company/*
|
@@ -30,6 +32,7 @@
|
|
30
32
|
- http://*.linkedin.com/pub/*
|
31
33
|
- http://*.looplogic.com/*
|
32
34
|
- http://*.polarb.com/*
|
35
|
+
- http://*.silk.co/explore/*
|
33
36
|
- http://*.slideshare.net/*/*
|
34
37
|
- http://*.smugmug.com/*
|
35
38
|
- http://*.smugmug.com/*#*
|
@@ -88,6 +91,8 @@
|
|
88
91
|
- http://achewood.com/*
|
89
92
|
- http://achewood.com/index.php*
|
90
93
|
- http://alkislarlayasiyorum.com/*
|
94
|
+
- http://alpha.vrchive.com/*
|
95
|
+
- http://alphahat.com/view/*
|
91
96
|
- http://amzn.com/*
|
92
97
|
- http://aniboom.com/animation-video/*
|
93
98
|
- http://animal.discovery.com/videos/*
|
@@ -97,8 +102,11 @@
|
|
97
102
|
- http://api.minoto-video.com/publishers/*/videos/*
|
98
103
|
- http://api.shopstyle.com/action/apiVisitRetailer*
|
99
104
|
- http://app.sliderocket.com/*
|
105
|
+
- http://app.stghv.com/*
|
100
106
|
- http://app.ustudio.com/embed/*/*
|
107
|
+
- http://app.videocheckout.com/embed/*
|
101
108
|
- http://app.wistia.com/embed/medias/*
|
109
|
+
- http://arcg.is/*
|
102
110
|
- http://askmen.com/video/*
|
103
111
|
- http://asofterworld.com/*.jpg
|
104
112
|
- http://audioboom.com/boos/*
|
@@ -112,6 +120,7 @@
|
|
112
120
|
- http://beta.polstir.com/*/*
|
113
121
|
- http://bigthink.com/ideas/*
|
114
122
|
- http://bigthink.com/series/*
|
123
|
+
- http://blab.im/*
|
115
124
|
- http://blip.tv/*/*
|
116
125
|
- http://boo.fm/b*
|
117
126
|
- http://bop.fm/s/*/*
|
@@ -123,15 +132,19 @@
|
|
123
132
|
- http://break.com/*/*
|
124
133
|
- http://bubb.li/*
|
125
134
|
- http://bunkrapp.com/*/*
|
135
|
+
- http://calameo.com/*
|
126
136
|
- http://canalplus.fr/*
|
127
137
|
- http://cbsnews.com/video/watch/*
|
128
138
|
- http://chirb.it/*
|
129
139
|
- http://cl.ly/*
|
130
140
|
- http://cl.ly/*/content
|
141
|
+
- http://clippituser.tv/*
|
131
142
|
- http://clipter.com/c/*
|
132
143
|
- http://clyp.it/*
|
144
|
+
- http://cnb.cx/*
|
133
145
|
- http://cnbc.com/id/*/play/1/video/*
|
134
146
|
- http://cnbc.com/id/*?*video*
|
147
|
+
- http://cnn.it/*
|
135
148
|
- http://codepen.io/*/pen/*
|
136
149
|
- http://codepen.io/*/pen/*
|
137
150
|
- http://codepicnic.com/bites/*
|
@@ -146,23 +159,26 @@
|
|
146
159
|
- http://crocodoc.com/*
|
147
160
|
- http://crowdmap.com/map/*
|
148
161
|
- http://crowdmap.com/post/*
|
149
|
-
- http://crunchbase.com/*/*
|
150
162
|
- http://d.pr/i/*
|
151
163
|
- http://dashboard.minoto-video.com/main/video/details/*
|
152
164
|
- http://distrify.com/film/*
|
153
165
|
- http://dnbradio.com/*
|
154
166
|
- http://dotsub.com/view/*
|
155
167
|
- http://drbl.in/*
|
168
|
+
- http://dreambroker.com/channel/*
|
156
169
|
- http://dsc.discovery.com/videos/*
|
157
170
|
- http://edition.cnn.com/video/*
|
171
|
+
- http://edition.cnn.com/videos/*
|
158
172
|
- http://embed.imajize.com/*
|
159
173
|
- http://embed.minoto-video.com/*
|
160
174
|
- http://espn.go.com/*/story*
|
161
175
|
- http://espn.go.com/video/clip*
|
162
176
|
- http://etsy.com/listing/*
|
163
177
|
- http://fav.me/*
|
178
|
+
- http://fb.com
|
164
179
|
- http://fb.me/*
|
165
180
|
- http://fiverr.com/*/*
|
181
|
+
- http://flat.io/score/*
|
166
182
|
- http://flic.kr/*
|
167
183
|
- http://flowvella.com/s/*
|
168
184
|
- http://fora.tv/*/*/*/*
|
@@ -172,6 +188,7 @@
|
|
172
188
|
- http://fotopedia.com/*/*
|
173
189
|
- http://foursquare.com/*
|
174
190
|
- http://fr.peoplbrain.com/tutoriaux/*
|
191
|
+
- http://frankly.me/*
|
175
192
|
- http://freemusicarchive.org/curator/*
|
176
193
|
- http://freemusicarchive.org/music/*
|
177
194
|
- http://frontback.me/p/*
|
@@ -186,6 +203,7 @@
|
|
186
203
|
- http://goanimate.com/videos/*
|
187
204
|
- http://godtube.com/featured/video/*
|
188
205
|
- http://godtube.com/watch/*
|
206
|
+
- http://google.*/maps/*
|
189
207
|
- http://google.com/profiles/*
|
190
208
|
- http://gph.is/*
|
191
209
|
- http://grindtv.com/*/video/*
|
@@ -196,6 +214,7 @@
|
|
196
214
|
- http://huffduffer.com/*/*
|
197
215
|
- http://hulu.com/w/*
|
198
216
|
- http://hulu.com/watch*
|
217
|
+
- http://hulu.tv/*
|
199
218
|
- http://hypem.com/premiere/*
|
200
219
|
- http://i*.photobucket.com/albums/*
|
201
220
|
- http://i.giflike.com/*
|
@@ -215,6 +234,7 @@
|
|
215
234
|
- http://investigation.discovery.com/videos/*
|
216
235
|
- http://isnare.com/*
|
217
236
|
- http://issuu.com/*/docs/*
|
237
|
+
- http://it.youtube.com/*
|
218
238
|
- http://itunes.apple.com/*
|
219
239
|
- http://izlesene.com/video/*
|
220
240
|
- http://jdsupra.com/legalnews/*
|
@@ -236,6 +256,7 @@
|
|
236
256
|
- http://logotv.com/video/*
|
237
257
|
- http://lonelyplanet.com/Clip.aspx?*
|
238
258
|
- http://lustich.de/videos/*
|
259
|
+
- http://lynda.com/*
|
239
260
|
- http://m.youtube.com/index*
|
240
261
|
- http://m.youtube.com/watch*
|
241
262
|
- http://maps.google.com/?*
|
@@ -254,6 +275,7 @@
|
|
254
275
|
- http://mlkshk.com/p/*
|
255
276
|
- http://moby.to/*
|
256
277
|
- http://money.cnn.com/video/*
|
278
|
+
- http://money.cnn.com/videos/*
|
257
279
|
- http://mpora.com/videos/*
|
258
280
|
- http://msn.foxsports.com/video*
|
259
281
|
- http://msnbc.msn.com/*/watch/*
|
@@ -262,6 +284,7 @@
|
|
262
284
|
- http://muzu.tv/*
|
263
285
|
- http://my.opera.com/*/albums/show.dml?id=*
|
264
286
|
- http://my.opera.com/*/albums/showpic.dml?album=*&picture=*
|
287
|
+
- http://my.storygami.com/video/*
|
265
288
|
- http://myloc.me/*
|
266
289
|
- http://mynet.com/video/*
|
267
290
|
- http://nbcnews.com/*
|
@@ -272,6 +295,7 @@
|
|
272
295
|
- http://on.aol.com/video/*
|
273
296
|
- http://on.bubb.li/*
|
274
297
|
- http://open.spotify.com/*
|
298
|
+
- http://oumy.com/v/*
|
275
299
|
- http://ow.ly/i/*
|
276
300
|
- http://pastebin.com/*
|
277
301
|
- http://pastie.org/*
|
@@ -286,35 +310,40 @@
|
|
286
310
|
- http://planetgreen.discovery.com/videos/*
|
287
311
|
- http://play.minoto-video.com/*
|
288
312
|
- http://play.spotify.com/*
|
313
|
+
- http://player.videopath.com/*
|
289
314
|
- http://player.vimeo.com/*
|
315
|
+
- http://plays.tv/video/*
|
290
316
|
- http://plus.google.com/*
|
291
317
|
- http://polarb.com/*
|
292
318
|
- http://polldaddy.com/community/poll/*
|
293
319
|
- http://polldaddy.com/poll/*
|
320
|
+
- http://pollplug.com/poll/*
|
294
321
|
- http://polstir.com/*/*
|
295
322
|
- http://ponga.com/*
|
296
323
|
- http://portal.sliderocket.com/*
|
297
324
|
- http://prezi.com/*/*
|
298
325
|
- http://public.chartblocks.com/c/*
|
299
326
|
- http://public.talely.com/*/*
|
327
|
+
- http://publons.com/author/*
|
300
328
|
- http://qik.com/*
|
301
329
|
- http://qik.com/video/*
|
302
330
|
- http://qik.ly/*
|
303
331
|
- http://questionablecontent.net/
|
304
332
|
- http://questionablecontent.net/comics/*.png
|
305
333
|
- http://questionablecontent.net/view.php*
|
306
|
-
- http://quora.com/*
|
334
|
+
- http://quora.com/*/answer/*
|
307
335
|
- http://radd.it/comments/*
|
308
336
|
- http://radd.it/magic/*
|
309
337
|
- http://radd.it/playlists/*
|
310
338
|
- http://radd.it/r/*
|
311
339
|
- http://radd.it/user/*
|
312
|
-
- http://radionomy.com/*/radio/*
|
313
340
|
- http://radioreddit.com/?q=songs*
|
314
341
|
- http://radioreddit.com/songs*
|
315
342
|
- http://rapidengage.com/s/*
|
316
343
|
- http://redux.com/f/*/*
|
317
344
|
- http://redux.com/stream/item/*/*
|
345
|
+
- http://relayto.com/*
|
346
|
+
- http://reuters.com/video/*
|
318
347
|
- http://reuters.com/video/*
|
319
348
|
- http://s*.photobucket.com/albums/*
|
320
349
|
- http://say.ly/*
|
@@ -331,11 +360,13 @@
|
|
331
360
|
- http://sendables.jibjab.com/view/*
|
332
361
|
- http://sendvid.com/*
|
333
362
|
- http://shoplocket.com/products/*
|
363
|
+
- http://shorti.org/*
|
334
364
|
- http://showme.com/sh/*
|
335
365
|
- http://siteanalytics.compete.com/*
|
336
366
|
- http://skitch.com/*/*/*
|
337
367
|
- http://sliderocket.com/*
|
338
368
|
- http://slidesha.re/*
|
369
|
+
- http://slidr.io/*/*
|
339
370
|
- http://snappytv.com/*
|
340
371
|
- http://snd.sc/*
|
341
372
|
- http://snotr.com/video/*
|
@@ -353,6 +384,7 @@
|
|
353
384
|
- http://sproutvideo.com/videos/*
|
354
385
|
- http://stepic.org/*
|
355
386
|
- http://storify.com/*/*
|
387
|
+
- http://streamable.com/*
|
356
388
|
- http://streamio.com/api/v1/*
|
357
389
|
- http://streetfire.net/video/*.htm*
|
358
390
|
- http://tagmotion.com/tree/*
|
@@ -361,6 +393,7 @@
|
|
361
393
|
- http://thedailyshow.cc.com/videos/*
|
362
394
|
- http://theguardian.com/*/video/*/*/*/*
|
363
395
|
- http://theonion.com/video/*
|
396
|
+
- http://ticker.tv/v/*
|
364
397
|
- http://tinypic.com/player.php*
|
365
398
|
- http://tinypic.com/r/*/*
|
366
399
|
- http://tinypic.com/view.php*
|
@@ -396,6 +429,7 @@
|
|
396
429
|
- http://video.pbs.org/video/*
|
397
430
|
- http://video.uludagsozluk.com/*
|
398
431
|
- http://video214.com/play/*
|
432
|
+
- http://videobio.com/playerjs/*
|
399
433
|
- http://videodetective.com/*/*
|
400
434
|
- http://videodonor.com/video/*
|
401
435
|
- http://videos.nymag.com/*
|
@@ -409,6 +443,7 @@
|
|
409
443
|
- http://vzaar.com/videos/*
|
410
444
|
- http://vzaar.me/*
|
411
445
|
- http://vzaar.tv/*
|
446
|
+
- http://w.graphiq.com/w/*
|
412
447
|
- http://washingtonpost.com/wp-dyn/*/video/*/*/*/*
|
413
448
|
- http://weavly.com/watch/*
|
414
449
|
- http://web.tv/*
|
@@ -426,6 +461,7 @@
|
|
426
461
|
- http://www.achewood.com/index.php*
|
427
462
|
- http://www.alkislarlayasiyorum.com/*
|
428
463
|
- http://www.allego.com/*
|
464
|
+
- http://www.alphahat.com/view/*
|
429
465
|
- http://www.amzn.com/*
|
430
466
|
- http://www.aniboom.com/animation-video/*
|
431
467
|
- http://www.askmen.com/video/*
|
@@ -439,13 +475,18 @@
|
|
439
475
|
- http://www.branchtrack.com/projects/*
|
440
476
|
- http://www.bravotv.com/*/*/videos/*
|
441
477
|
- http://www.break.com/*/*
|
478
|
+
- http://www.calameo.com/*
|
442
479
|
- http://www.canalplus.fr/*
|
480
|
+
- http://www.candybank.com/*
|
443
481
|
- http://www.clikthrough.com/theater/video/*
|
444
482
|
- http://www.clipfish.de/*/*/video/*
|
483
|
+
- http://www.clippituser.tv/*
|
445
484
|
- http://www.clipsyndicate.com/video/playlist/*/*
|
446
485
|
- http://www.cnbc.com/id/*/play/1/video/*
|
447
486
|
- http://www.cnbc.com/id/*?*video*
|
448
487
|
- http://www.cnn.com/video/*
|
488
|
+
- http://www.cnn.com/videos/*
|
489
|
+
- http://www.cnn.com/videos/*
|
449
490
|
- http://www.codeply.com/view/*
|
450
491
|
- http://www.colbertnation.com/full-episodes/*
|
451
492
|
- http://www.colbertnation.com/the-colbert-report-collections/*
|
@@ -455,15 +496,16 @@
|
|
455
496
|
- http://www.comedycentral.com/videos/index.jhtml?*
|
456
497
|
- http://www.confreaks.com/videos/*
|
457
498
|
- http://www.confreaks.net/videos/*
|
458
|
-
- http://www.crunchbase.com/*/*
|
459
499
|
- http://www.dailymile.com/people/*/entries/*
|
460
500
|
- http://www.dnbradio.com/*
|
501
|
+
- http://www.dreambroker.com/channel/*
|
461
502
|
- http://www.etsy.com/listing/*
|
462
503
|
- http://www.eyeem.com/a/*
|
463
504
|
- http://www.eyeem.com/p/*
|
464
505
|
- http://www.eyeem.com/u/*
|
465
506
|
- http://www.facebook.com/*/photos/*
|
466
507
|
- http://www.facebook.com/*/posts/*
|
508
|
+
- http://www.facebook.com/*/videos/*
|
467
509
|
- http://www.facebook.com/photo.php*
|
468
510
|
- http://www.facebook.com/video.php*
|
469
511
|
- http://www.fiverr.com/*/*
|
@@ -480,11 +522,15 @@
|
|
480
522
|
- http://www.gametrailers.com/video*
|
481
523
|
- http://www.gettyimages.com/detail/photo/*
|
482
524
|
- http://www.giflike.com/a/*
|
525
|
+
- http://www.globalgiving.org/funds/*
|
526
|
+
- http://www.globalgiving.org/microprojects/*
|
527
|
+
- http://www.globalgiving.org/projects/*
|
483
528
|
- http://www.globalpost.com/dispatch/*
|
484
529
|
- http://www.globalpost.com/video/*
|
485
530
|
- http://www.godtube.com/featured/video/*
|
486
531
|
- http://www.godtube.com/watch/*
|
487
532
|
- http://www.gogoyoko.com/song/*
|
533
|
+
- http://www.google.*/maps/*
|
488
534
|
- http://www.google.com/profiles/*
|
489
535
|
- http://www.grindtv.com/*/video/*
|
490
536
|
- http://www.guardian.co.uk/*/video/*/*/*/*
|
@@ -499,6 +545,7 @@
|
|
499
545
|
- http://www.ifood.tv/recipe/*
|
500
546
|
- http://www.ifood.tv/video/*
|
501
547
|
- http://www.ign.com/videos/*
|
548
|
+
- http://www.instagram.com/p/*
|
502
549
|
- http://www.isnare.com/*
|
503
550
|
- http://www.izlesene.com/video/
|
504
551
|
- http://www.jdsupra.com/legalnews/*
|
@@ -516,6 +563,7 @@
|
|
516
563
|
- http://www.livestream.com/*
|
517
564
|
- http://www.logotv.com/video/*
|
518
565
|
- http://www.lonelyplanet.com/Clip.aspx?*
|
566
|
+
- http://www.lynda.com/*
|
519
567
|
- http://www.meinvz.net/*
|
520
568
|
- http://www.meinvz.net/Gadgets/Info/*
|
521
569
|
- http://www.meinvz.net/Gadgets/Install/*
|
@@ -538,33 +586,38 @@
|
|
538
586
|
- http://www.myspace.com/index.cfm?fuseaction=*&videoid*
|
539
587
|
- http://www.myvideo.de/watch/*
|
540
588
|
- http://www.nbcnews.com/*
|
589
|
+
- http://www.newhive.com/*/*
|
541
590
|
- http://www.npr.org/*/*/*/*/*
|
542
591
|
- http://www.npr.org/*/*/*/*/*/*
|
543
592
|
- http://www.npr.org/*/*/*/*/*/*/*
|
544
593
|
- http://www.npr.org/templates/story/story.php*
|
545
594
|
- http://www.nytimes.com/video/*/*
|
546
595
|
- http://www.nzonscreen.com/title/*
|
596
|
+
- http://www.oumy.com/v/*
|
547
597
|
- http://www.overstream.net/view.php?oid=*
|
548
598
|
- http://www.pastie.org/*
|
549
599
|
- http://www.pixorial.com/watch/*
|
550
600
|
- http://www.polleverywhere.com/free_text_polls/*
|
551
601
|
- http://www.polleverywhere.com/multiple_choice_polls/*
|
552
602
|
- http://www.polleverywhere.com/polls/*
|
603
|
+
- http://www.publons.com/author/*
|
553
604
|
- http://www.quantcast.com/*
|
554
605
|
- http://www.quantcast.com/wd:*
|
555
606
|
- http://www.questionablecontent.net/
|
556
607
|
- http://www.questionablecontent.net/comics/*.png
|
557
608
|
- http://www.questionablecontent.net/view.php*
|
558
|
-
- http://www.quora.com/*
|
609
|
+
- http://www.quora.com/*/answer/*
|
559
610
|
- http://www.qwantz.com/index.php?comic=*
|
560
611
|
- http://www.qwiki.com/q/*
|
561
|
-
- http://www.
|
612
|
+
- http://www.qzzr.com/quiz/*
|
562
613
|
- http://www.radioreddit.com/?q=songs*
|
563
614
|
- http://www.radioreddit.com/songs*
|
564
615
|
- http://www.rdio.com/#/artist/*/album/*
|
565
616
|
- http://www.rdio.com/artist/*/album/*
|
566
617
|
- http://www.redux.com/f/*/*
|
567
618
|
- http://www.redux.com/stream/item/*/*
|
619
|
+
- http://www.relayto.com/*
|
620
|
+
- http://www.reuters.com/video/*
|
568
621
|
- http://www.reuters.com/video/*
|
569
622
|
- http://www.rts.ch/play/tv/*
|
570
623
|
- http://www.saynow.com/playMsg.html*
|
@@ -587,6 +640,7 @@
|
|
587
640
|
- http://www.shopstyle.com/action/apiVisitRetailer*
|
588
641
|
- http://www.shopstyle.com/action/viewLook*
|
589
642
|
- http://www.shopstyle.com/browse*
|
643
|
+
- http://www.shorti.org/*
|
590
644
|
- http://www.showme.com/sh/*
|
591
645
|
- http://www.sliderocket.com/*
|
592
646
|
- http://www.slideshare.net/*/*
|
@@ -667,6 +721,7 @@
|
|
667
721
|
- http://www.xiami.com/song/*
|
668
722
|
- http://www.xkcd.com/*
|
669
723
|
- http://www.xtranormal.com/watch/*
|
724
|
+
- http://www.youtube.com/attribution_link*
|
670
725
|
- http://www.youtube.com/embed/*
|
671
726
|
- http://www.youtube.com/gif*
|
672
727
|
- http://www.zapiks.com/*
|
@@ -678,16 +733,30 @@
|
|
678
733
|
- http://xkcd.com/*
|
679
734
|
- http://yahoo.com/movies/*
|
680
735
|
- http://youtu.be/*
|
736
|
+
- http://youtube.ca/*
|
737
|
+
- http://youtube.co.uk/*
|
738
|
+
- http://youtube.com.br/*
|
739
|
+
- http://youtube.com/attribution_link*
|
681
740
|
- http://youtube.com/gif*
|
741
|
+
- http://youtube.es/*
|
742
|
+
- http://youtube.fr/*
|
743
|
+
- http://youtube.ie/*
|
744
|
+
- http://youtube.jp/*
|
745
|
+
- http://youtube.nl/*
|
746
|
+
- http://youtube.pl/*
|
682
747
|
- http://zeit.de/video/*
|
683
748
|
- http://zie.nl/video/*
|
684
749
|
- https://*.23video.com/*
|
750
|
+
- https://*.accredible.com/*
|
685
751
|
- https://*.brainsonic.com/*
|
686
752
|
- https://*.cartodb.com/*/*
|
687
753
|
- https://*.crocodoc.com/*
|
754
|
+
- https://*.hosted.panopto.com/*
|
688
755
|
- https://*.iplayerhd.com/player/video/*
|
689
756
|
- https://*.iplayerhd.com/playerframe/*
|
757
|
+
- https://*.kaltura.com/*
|
690
758
|
- https://*.looplogic.com/*
|
759
|
+
- https://*.silk.co/explore/*
|
691
760
|
- https://*.stream.co.jp/apiservice/*
|
692
761
|
- https://*.stream.ne.jp/apiservice/*
|
693
762
|
- https://*.wi.st/*
|
@@ -698,40 +767,60 @@
|
|
698
767
|
- https://*vidyard.com/*
|
699
768
|
- https://*youtube.com/watch*
|
700
769
|
- https://23video.com/*
|
770
|
+
- https://accredible.com/*
|
771
|
+
- https://alpha.vrchive.com/*
|
701
772
|
- https://animoto.com/play/*
|
702
773
|
- https://api.lovelive.tv/v1/*
|
703
774
|
- https://app.devhv.com/oembed/*
|
775
|
+
- https://app.stghv.com/*
|
776
|
+
- https://app.videocheckout.com/embed/*
|
704
777
|
- https://app.wistia.com/embed/medias/*
|
778
|
+
- https://blab.im/*
|
705
779
|
- https://bop.fm/a/*
|
706
780
|
- https://bop.fm/p/*
|
707
781
|
- https://bop.fm/s/*/*
|
708
782
|
- https://brainshark.com/*/*
|
709
783
|
- https://brainsonic.com/*
|
710
784
|
- https://bunkrapp.com/*/*
|
785
|
+
- https://calameo.com/*
|
711
786
|
- https://chirb.it/*
|
712
787
|
- https://clipmine.com/embed/*
|
713
788
|
- https://clipmine.com/video/*
|
789
|
+
- https://clippituser.tv/*
|
714
790
|
- https://clipter.com/c/*
|
715
791
|
- https://cloudup.com/*
|
716
792
|
- https://clyp.it/*
|
717
793
|
- https://codepicnic.com/bites/*
|
718
794
|
- https://codepicnic.com/consoles/*
|
795
|
+
- https://coub.com/embed/*
|
796
|
+
- https://coub.com/view/*
|
719
797
|
- https://crocodoc.com/*
|
798
|
+
- https://dreambroker.com/channel/*
|
720
799
|
- https://fb.me/*
|
721
800
|
- https://flowvella.com/s/*
|
722
801
|
- https://foursquare.com/*
|
723
802
|
- https://fr.peoplbrain.com/tutoriaux/*
|
724
803
|
- https://ganxy.com/*
|
725
804
|
- https://gfycat.com/*
|
805
|
+
- https://gifs.com/*
|
806
|
+
- https://gifs.com/gif/*
|
726
807
|
- https://gist.github.com/*
|
808
|
+
- https://glitter.club/*
|
809
|
+
- https://google.*/maps/*
|
727
810
|
- https://hackpad.com/*
|
728
811
|
- https://ifttt.com/recipes/*
|
812
|
+
- https://iloopit.net/*/*
|
729
813
|
- https://img.skitch.com/*
|
814
|
+
- https://invis.io/*
|
815
|
+
- https://it.youtube.com/*
|
730
816
|
- https://itunes.apple.com/*
|
731
817
|
- https://khanacademy.org/*
|
818
|
+
- https://lynda.com/*
|
819
|
+
- https://lynda.com/*
|
732
820
|
- https://maps.google.com/?*
|
733
821
|
- https://maps.google.com/maps/ms?*
|
734
822
|
- https://maps.google.com/maps?*
|
823
|
+
- https://marvelapp.com/*
|
735
824
|
- https://medium.com/*
|
736
825
|
- https://medium.com/*/*
|
737
826
|
- https://megavisor.com/en/view/*
|
@@ -741,19 +830,29 @@
|
|
741
830
|
- https://mix.office.com/mix/*
|
742
831
|
- https://mix.office.com/watch/*
|
743
832
|
- https://mixbit.com/v/*
|
833
|
+
- https://my.storygami.com/video/*
|
834
|
+
- https://newhive.com/*/*
|
835
|
+
- https://newhive.com/*/*
|
744
836
|
- https://open.spotify.com/*
|
837
|
+
- https://oumy.com/v/*
|
745
838
|
- https://picasaweb.google.com*/*/*
|
746
839
|
- https://picasaweb.google.com*/*/*#*
|
747
840
|
- https://picasaweb.google.com*/lh/photo/*
|
748
841
|
- https://play.spotify.com/*
|
842
|
+
- https://player.videopath.com/*
|
749
843
|
- https://player.vimeo.com/*
|
844
|
+
- https://plays.tv/video/*
|
750
845
|
- https://plus.google.com/*
|
846
|
+
- https://pollplug.com/poll/*
|
751
847
|
- https://portfolium.com/entry/*
|
848
|
+
- https://projects.invisionapp.com/share/*
|
752
849
|
- https://public.chartblocks.com/c/*
|
753
|
-
- https://
|
850
|
+
- https://publons.com/author/*
|
851
|
+
- https://quora.com/*/answer/*
|
754
852
|
- https://rapidengage.com/s/*
|
755
853
|
- https://readtapestry.com/s/*/
|
756
854
|
- https://reelhouse.org/*
|
855
|
+
- https://relayto.com/*
|
757
856
|
- https://screen.yahoo.com/*/*
|
758
857
|
- https://scribblemaps.com/maps/view/*/*
|
759
858
|
- https://sendvid.com/*
|
@@ -761,6 +860,7 @@
|
|
761
860
|
- https://sketchfab.com/models/*
|
762
861
|
- https://sketchfab.com/show/*
|
763
862
|
- https://skitch.com/*/*/*
|
863
|
+
- https://slidr.io/*/*
|
764
864
|
- https://soundcloud.com/*
|
765
865
|
- https://soundcloud.com/*/*
|
766
866
|
- https://soundcloud.com/*/sets/*
|
@@ -768,38 +868,72 @@
|
|
768
868
|
- https://speakerdeck.com/*/*
|
769
869
|
- https://stepic.org/*
|
770
870
|
- https://storify.com/*/*
|
871
|
+
- https://streamable.com/*
|
771
872
|
- https://streamio.com/api/v1/*
|
772
873
|
- https://tr.instela.com/*
|
773
874
|
- https://tun.in/*
|
774
875
|
- https://tunein.com/*
|
876
|
+
- https://uploadly.com/*
|
775
877
|
- https://urtak.com/clr/*
|
776
878
|
- https://urtak.com/u/*
|
777
879
|
- https://vid.me/*
|
778
880
|
- https://vidd.me/*
|
779
881
|
- https://video.esri.com/*
|
780
882
|
- https://video214.com/play/*
|
883
|
+
- https://view.stacker.cc/*
|
884
|
+
- https://view.stacker.cc/*
|
781
885
|
- https://vimeo.com/*
|
782
886
|
- https://vine.co/v/*
|
887
|
+
- https://w.graphiq.com/w/*
|
783
888
|
- https://wi.st/*
|
784
889
|
- https://wistia.com/*
|
785
890
|
- https://www.allego.com/*
|
786
891
|
- https://www.brainshark.com/*/*
|
787
892
|
- https://www.branchtrack.com/projects/*
|
893
|
+
- https://www.calameo.com/*
|
894
|
+
- https://www.clippituser.tv/*
|
895
|
+
- https://www.dreambroker.com/channel/*
|
788
896
|
- https://www.facebook.com/*/photos/*
|
789
897
|
- https://www.facebook.com/*/posts/*
|
898
|
+
- https://www.facebook.com/*/videos/*
|
790
899
|
- https://www.facebook.com/photo.php*
|
791
900
|
- https://www.facebook.com/video.php*
|
901
|
+
- https://www.flat.io/score/*
|
792
902
|
- https://www.foursquare.com/*
|
793
903
|
- https://www.ganxy.com/*
|
904
|
+
- https://www.gifs.com/*
|
905
|
+
- https://www.gifs.com/gif/*
|
906
|
+
- https://www.globalgiving.org/funds/*
|
907
|
+
- https://www.globalgiving.org/microprojects/*
|
908
|
+
- https://www.globalgiving.org/projects/*
|
909
|
+
- https://www.google.*/maps/*
|
910
|
+
- https://www.instagram.com/p/*
|
794
911
|
- https://www.khanacademy.org/*
|
795
|
-
- https://www.
|
912
|
+
- https://www.newhive.com/*/*
|
913
|
+
- https://www.oumy.com/v/*
|
914
|
+
- https://www.publons.com/author/*
|
915
|
+
- https://www.quora.com/*/answer/*
|
916
|
+
- https://www.qzzr.com/quiz/*
|
796
917
|
- https://www.reelhouse.org/*
|
918
|
+
- https://www.relayto.com/*
|
797
919
|
- https://www.scribblemaps.com/maps/view/*/*
|
798
920
|
- https://www.streamio.com/api/v1/*
|
799
921
|
- https://www.vimeo.com/*
|
800
922
|
- https://www.vine.co/v/*
|
801
923
|
- https://www.wedgies.com/question/*
|
924
|
+
- https://www.youtube.com/attribution_link*
|
802
925
|
- https://www.youtube.com/embed/*
|
803
926
|
- https://www.youtube.com/gif*
|
804
927
|
- https://yahoo.com/movies/*
|
928
|
+
- https://youtu.be/*
|
929
|
+
- https://youtube.ca/*
|
930
|
+
- https://youtube.co.uk/*
|
931
|
+
- https://youtube.com.br/*
|
932
|
+
- https://youtube.com/attribution_link*
|
805
933
|
- https://youtube.com/gif*
|
934
|
+
- https://youtube.es/*
|
935
|
+
- https://youtube.fr/*
|
936
|
+
- https://youtube.ie/*
|
937
|
+
- https://youtube.jp/*
|
938
|
+
- https://youtube.nl/*
|
939
|
+
- https://youtube.pl/*
|