複数の youtube RSS をインポートして Drupal Feeds から 動画コンテンツを作成する方法

              +-----+ +-----+ +-----+
      youtube |URL1 | |URL2 | |URL3 |
              +--+--+ +--+--+ +--+--+
                 |       |       |
                 v       v       v
              +--+--+ +--+--+ +--+--+
    FeedVideo |RSS1 | |RSS2 | |RSS3 |
              +-----+ +-----+ +-----+
              +---------------------+
                         | Feeds Importer
                         v
              +-----+ +--+--+ +-----+ +-----+ +-----+
FeedVideoItem |node1| |node2| |node3| |node4| |node5| ...
              +-----+ +-----+ +-----+ +-----+ +-----+
  • video 用モジュールインストール
$ sudo drush -y en video_embed_field

 

  • コンテンツタイプを2つ作成 admin/structure/types/add

1. URL指定用コンテンツタイプ

Name: FeedVideo
Promoted to front page: 不要
フィールド追加: 不要

2. コンテンツ作成用コンテンツタイプ

Name: FeedVideoItem
XML sitemap: Included
フィールド追加:
Label: video_embed, Field type: Video Embed
Label: tag, Field type: Term reference

 

  • Importer作成 admin/structure/feeds/create

Name: Video
Basic setting
Attach to content type -> "FeedVideo"
Periodic import: Every 1hourなど

Parser: XML Xpath parser - youtubeの例
Settings
Context - /feed/entry
title - title
video - link/@href
body - media:group/media:description
GUID - yt:videoId
feedid - /feed/id
feedtitle - /feed/title

Processor -> Node processor -> Bundle -> "FeedVideoItem"
Processor -> Node processor -> Mapping
title (title): Title (title)
body (body) Body (body)
GUID (guid): GUID (guid), Used as unique
video (video): video_embed: Embed URL (field_video_embed:video_url)
feedtitle (feedtitle): tag (field_tag), Auto Create設定

 

  • import設定 node/add/feedvideo

Title: Youtube channel 1
URL書式
https://www.youtube.com/feeds/videos.xml?channel_id=[チャンネルID]
https://www.youtube.com/feeds/videos.xml?user=[ユーザ名]
https://www.youtube.com/feeds/videos.xml?playlist_id=[プレイリストID]
cron起動のタイミングでコンテンツが作成される。