Vimeo embeds stopped working, Youtube is fine


(Bart) #1

After I did a rebuild yesterday, Vimeo embed have stopped working, with the following message in the console:

When inserting a youtube link, the embed works as expected. I just did a fresh rebuild with the same result.

I can’t reproduce the issue here on meta, but I also can’t understand what would cause this change in behaviour. Can someone help me track this down?

Here’s the output of production.log:

Started GET "/onebox?url=https%3A%2F%2Fvimeo.com%2F273370944&refresh=false" for xxx at 2018-06-05 07:03:03 +
0000
Processing by OneboxController#show as HTML
  Parameters: {"url"=>"https://vimeo.com/273370944", "refresh"=>"false"}
  Rendering default/empty.html.erb within layouts/application
  Rendered default/empty.html.erb within layouts/application (0.3ms)
  Rendered layouts/_head.html.erb (0.2ms)
  Rendered common/_google_universal_analytics.html.erb (1.0ms)
  Rendered common/_discourse_stylesheet.html.erb (0.1ms)
  Rendered common/_special_font_face.html.erb (0.1ms)
  Rendered application/_header.html.erb (0.1ms)
  Rendered common/_discourse_javascript.html.erb (2.2ms)
Completed 200 OK in 300ms (Views: 132.8ms | ActiveRecord: 22.6ms)

(Jeff Atwood) #2

It’s possible Vimeo is blocking you or otherwise rate limiting your server IP? Or some other third party plugin is interfering on your site?

If the same video works when you link it here, there’s no other possibility.


(Bart) #3

Crap, you’re right! I’ll talk to them. Thanks Jeff!

# curl https://vimeo.com/api/oembed.json?url=https%3A//vimeo.com/272910615
{
    "error": "You have been banned.",
    "link": null,
    "developer_message": "You have been banned. Contact vimeo support for more information.",
    "error_code": 3500
}

(Bart) #4

Update:

  • I wonder if this is because we’re behind Cloudflare (which in our case is working smoothly) and they have a limited number of IP addresses. So IP-banning could be problematic. No, that can’t be it - the oembed call would originate from the server’s original IP address, not from cloudflare.
  • I just realised a colleague used to work at Vimeo, so I’m trying the inroads now.

I’ll keep you posted.


(Bart) #5

I believe I understand what happened here. After talking to Vimeo support, the most likely explanation is that we ran into a rate limit on their oEmbed endpoint. They mentioned:

One behavior our system checks for is the number of incoming requests made by a single IP; if a server were to make thousands of requests to Vimeo within only a minute or two, it is extremely likely the server’s IP would be banned.

This didn’t make sense to me until I realised I’d been running a large rebake this weekend, which potentially could have sent many requests their way in a short amount of time (we’re a graphics community and feature many videos). Their bans last for 7 days, which means ours will be lifted in two days.

I have good faith that this won’t be a problem again, UNTIL we need to do another rebake that is. At that point I’ll have to figure out how to rebake all posts that don’t contain any vimeo links at full speed, and rate-limit the others. Sounds doable.