Feedjira setup for YouTube rss parsing - youtube

I am trying to pull in the first video from an unlisted YouTube playlist. I found the simple_parser gem but since it hasn't been updated in a few years, I decided to go with feedjira instead. I'm not sure if this is my lack of knowledge and feedjira's lack of advice for noobs or if feedjira has a bug.
Anyhow, I'm getting this error: uninitialized constant Youtube::Feedjira
Here's my code:
def open_rss
playlist_url = "https://www.youtube.com/feeds/videos.xml?playlist_id=" + playlist_id
feed = Feedjira::Feed.fetch_and_parse playlist_url
video = feed.entries.first
details = {:title => video.title,
:description => video.content,
:url => video.media_url,
:thumbnail => video.media_thumbnail_url
}
return details
end
I don't know if I missed a setup step or what since I couldn't find much info on setting this thing up. Thanks for the help!

Related

How to get videos from rss feed entries

I am trying to get videos(urls) from feed entry url.
I am using Feedjira and MetaInspector in my application to fetch and store articles along with images. Now I want to store videos of articles if any. Can anyone please tell me what could be the best possible ways to store videos from articles
Thank you.
I do this in my project to save all the url found from rss feeds
Source.all.each do |source|
feed = Feedjira::Feed.fetch_and_parse(source.url)
feed.entries.each do |entry|
unless Link.exists? url: entry.url
Link.create!(title: entry.title,
url: entry.url)
end
end
end
in my snippet, I only save the url and title, for videos you just need to add entry.video,
you can see all the entry tag from feed.entries object or from the rss given.
and If you want to add another attributes, ex: media:thumbnail you could add this code before calling fetch_and_parse but you need to call it once not everytime you call fetch_and_parse to avoid memory leak
Feedjira::Feed.add_common_feed_entry_element("media:thumbnail", :value => :url, :as => :pic)
then you could do entry.pic to get the thumbnail url

How do I post an image using Koala gem?

I'm using the Koala gem to post images to the Facebook wall with the put_object method. The problem I'm having is that the images show up as thumbnails on the wall (with a caption) instead of the larger image that I'm expecting. When you click on the thumbnail, I'm expecting the photo to pop open in Facebook's photo viewer, but it simply directs me to the URL of the image I specified. This seems more like the behavior I'd expect when posting a link to the wall. I've also tried using post_picture with no success. Here is a screenshot of what I'm expecting: http://cl.ly/image/472a2H333z13
My stream permissions include the following:
read_stream,offline_access,manage_pages,publish_stream,create_event,rsvp_event,sms,user_photos,friends_about_me,friends_status,friends_activities,friends_likes,friends_interests,read_insights,friends_photos
The following code works but not as expected - here is a screenshot of how an image posted in using put_object appears on the timeline: http://cl.ly/image/1x3X1K0k2l2D
put_object('me', 'feed', :message => 'this is the message', :name => 'this is the caption', :picture => 'http://www.socialvolt.com/img/producttour/listen.png', :source => 'http://www.socialvolt.com/img/producttour/ssPublish.jpg')
This code doesn't work at all:
put_picture('me', 'feed', :message => 'this is the message', :name => 'this is the caption', :picture => 'http://www.socialvolt.com/img/producttour/listen.png', :source => 'http://www.socialvolt.com/img/producttour/ssPublish.jpg')
I also can't find any difference between :picture and :source.
Can anyone help me figure out what I'm doing wrong?
Here is the code.
graph = Koala::Facebook::API.new(cookies[:acess_token])
begin
graph.put_picture(
"https://dl.dropboxusercontent.com/u/71317935/banners/coy_copper.jpg",
"image/png",
{:message => "introduces Some information"}
)
rescue Exception => e
render :text => e.message and return
end
Off the top of my head, you may need a larger photo. More specifically, I think the width needs to be at least 480px.
The images in your code seem to be less than 480px:
http://www.socialvolt.com/img/producttour/listen.png
http://www.socialvolt.com/img/producttour/ssPublish.jpg
This comes from experience with User Generated Photos. You're not really using Open Graph Actions, so I have no idea if Facebook applies the same rules for this to generic photo uploads.

youtube-g and rails3

I am new to using youtube-g gem and i would like to embed a youtube video rapper that plays videos on my rails app hosted from youtube. pls does anyone know a youtube-g tutorial or another gem with a simpler readme and documentation that can help. So also a quick tutorial help as an answer would be great
The 'youtube-g' gem was actually replaced by the 'youtube_it' gem located here: https://github.com/kylejginavan/youtube_it
If all you want to do is a regular embed of a youtube video, you can just use this wrapper (HAML syntax):
%iframe{:title => "YouTube video player", :class => "youtube-player", :type => "text/html", :width => "425", :height => "349",:src => #your_model_name.video_link, :frameborder => "0", :allowFullScreen => true, :id => 'my_video_player' }
If you want to dynamically pull videos from your youTube channel you need to create a client and pull the stream like so:
client = YouTubeIt::Client.new( :username => 'your_user_name', :password => 'you_password', :dev_key => 'your_api_key')
results = client.videos_by(:user => 'your_user_display_name')
That will give you a VideoSearch Object. If you wanted to iterate through all of those video objects:
results.videos
That will return an array of Video objects where you have access to all of these attributes listed here: http://rubydoc.info/gems/youtube_it/1.4.1/YouTubeIt/Model/Video
This includes the YouTube url. If you wanted to use the player and and url on your page, you can just do some regEx to extract the video_id and build it yourself. Hope this helps.

Rhomobile rhodes Rho AsyncHttp post

I am having problems with Rhomobile rhodes, plaese can someone tell me how to make http post, get, put, and delete using Rho::AsyncHttp?
I've been trying it to no success for hours.
Here's some sample code to place in your controller.rb file
Here's the initial call
def index
Rho::AsyncHttp.get(
:url => 'http://the.page.you.want.to.get',
:callback => (url_for :action => :httpget_callback),
:callback_param => "" )
render :action => :wait
end
the code above will initiate the httpget_callback method (below)
while that goes off and loads the url it'll change the screen and load the wait.erb file
def httpget_callback
if #params['status'] != 'ok'
##error_params = #params
WebView.navigate(url_for :action => :show_error )
else
#html = #params['body']
end
WebView.navigate ( url_for :action => :show_result )
end
Without getting too far into it - the body of the returned page is placed into #html variable
Hope that helps, if you need more help, let me know.
I have a sample of get an post
res = Rho::AsyncHttp.post(:url => 'http://192.168.1.64/WebServiceTest/Service.asmx/Sumar')
#msg= "Sync http call: #{res}"
http://wiki.rhomobile.com/index.php/RhodesConnectToWebServices
I'm often struggling with the nuances of AsyncHttp in Rhodes as well, so I can't claim mastery yet, but I really felt the need to chime in with a suggestion:
I find using the Firebug plugin of Firefox to be VERY helpful when debugging my Rhodes app. You can hook it up very easily! You can load your app with any browser by configuring the web server to run on a specific port. This setting is in rhoconfig.txt and it is called local_server_port.
This is specifically helpful because you can easily survey the HTML and raw data of requests/responses and use the console to run javascript commands and play with the DOM and web page in realtime.

403 Error when Authenticating using tumblr gem for rails application

I have a ruby-on-rails application that wishes to utilise the tumblr gem for adding posts when an action is taken (eg: creating a blog post)
I currently have the tumblr gem installed and can manage to fetch my posts using
#tumblruser = Tumblr::User.new('myemail','mypassword')
However when i go to add a post where it asks me to pass the user information like so (according to the API for the gem)
post = Tumblr::Post.create(#tumblruser, :type => 'video', :embed => #post.video_html, :title => #post.title, :caption => #post.content)
it just does not want to authenticate and returns a 403 error
anyone had any experience with this?
NEW SOLUTION:
I have found recently that there has been a problem with the gem. So I have made a copy of it, changed a few things in the docs and code and put it at http://rubygems.org/gems/matenia-tumblr-api
Hope the changes and docs help someone else out there.
As always I welcome any improvements, or refactoring on any of my projects.
Kind Regards,
Matenia
OLD ANSWER BELOW
I managed to get around this by the way ... all i did was declare the username and password in place of #tumblruser like so:
post = Tumblr::Post.create(:email => 'user name email here',
:password => 'my password',
:type => 'video',
:embed => #post.video_html,
:caption => #postcontent)
where #postcontent is the html text of post.content and gsubbed to escape most of the html.
hope this saves someone else some time.
If you are only going to check authentication with any media like Facebook , Twitter ,LinkedIn ,Tumblr , Github and almost 20 others (you can check Here ) .Then omniauth gem is the first thing that comes to mind . Means It's clearly simplest solution for authentication and I love it

Resources