YT AIニュースプレイリスト作成ツール/AIニュースフォーム更新ツール

上級

これはOther分野の自動化ワークフローで、23個のノードを含みます。主にFilter, YouTube, SplitOut, Telegram, HttpRequestなどのノードを使用。 Google Sheetsを使って毎日のYouTubeプレイリストを作成し、Telegramで通知を受信

前提条件
  • Telegram Bot Token
  • ターゲットAPIの認証情報が必要な場合あり
  • Google Sheets API認証情報

カテゴリー

ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "id": "2LFEJVoSkeZMndiM",
  "meta": {
    "instanceId": "d73587d68bda6969e611b1d966e9e2b0ae078a8d2666ab57d6d9dcd379a0ce36",
    "templateCredsSetupCompleted": true
  },
  "name": "YT AI News Playlist Creator/AI News Form Updater",
  "tags": [],
  "nodes": [
    {
      "id": "a871e87e-dc02-4364-83b3-fe378ca60687",
      "name": "チャンネル名を読み取る",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        860,
        100
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 944489068,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1RNah4ZZsLxflQXvMq8AEn3BFpscOC2ygMZ1dPTlk-Kk/edit#gid=944489068",
          "cachedResultName": "AI News Channels"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1RNah4ZZsLxflQXvMq8AEn3BFpscOC2ygMZ1dPTlk-Kk",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1RNah4ZZsLxflQXvMq8AEn3BFpscOC2ygMZ1dPTlk-Kk/edit?usp=drivesdk",
          "cachedResultName": "Media Links"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "hVq7KRYH68lYmtEB",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "bcc83a11-e7e1-4bcb-a054-a2f0cc26c5f0",
      "name": "動画を取得",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1020,
        100
      ],
      "parameters": {
        "url": "https://www.googleapis.com/youtube/v3/search",
        "options": {},
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "part",
              "value": "snippet"
            },
            {
              "name": "publishedAfter",
              "value": "={{ $now.minus(1, 'day') }}"
            },
            {
              "name": "maxResults",
              "value": "5"
            },
            {
              "name": "channel_id",
              "value": "={{ $('Read Channel Names').item.json['Channel Id'] }}"
            },
            {
              "name": "order",
              "value": "date"
            },
            {
              "name": "key",
              "value": "AddYourAPIKeyHere"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "6da4a908-1705-4d3a-8f1a-aa73e36866c7",
      "name": "分割",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1160,
        100
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "items"
      },
      "typeVersion": 1
    },
    {
      "id": "1f7ab323-fb52-4a41-bf71-9594e4d1c78d",
      "name": "付箋",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        140,
        0
      ],
      "parameters": {
        "width": 220,
        "height": 260,
        "content": "## Initiation\nThis section starts the workflow sets the time."
      },
      "typeVersion": 1
    },
    {
      "id": "e17f2b65-3320-46aa-b360-2366691053cd",
      "name": "付箋1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        800,
        0
      ],
      "parameters": {
        "color": 5,
        "width": 660,
        "height": 260,
        "content": "## Getting the Videos\nThis section grabs the videos."
      },
      "typeVersion": 1
    },
    {
      "id": "d950c171-0993-4e51-8942-18dca557c70a",
      "name": "プレイリストを作成",
      "type": "n8n-nodes-base.youTube",
      "position": [
        440,
        100
      ],
      "parameters": {
        "title": "={{ $today.format('yyLLdd') }} AI News",
        "options": {},
        "resource": "playlist",
        "operation": "create"
      },
      "credentials": {
        "youTubeOAuth2Api": {
          "id": "alrF3L4QeYVd4Ckn",
          "name": "YouTube account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1d292e23-4efc-4377-aacf-8c5b9c54e524",
      "name": "古いプレイリストを削除",
      "type": "n8n-nodes-base.youTube",
      "position": [
        580,
        -220
      ],
      "parameters": {
        "options": {},
        "resource": "playlist",
        "operation": "delete",
        "playlistId": "={{ $json['New Playlist ID'] }}"
      },
      "credentials": {
        "youTubeOAuth2Api": {
          "id": "alrF3L4QeYVd4Ckn",
          "name": "YouTube account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "26ddb0d4-4ae8-485c-8909-00c70230ce76",
      "name": "付箋2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        400,
        -340
      ],
      "parameters": {
        "color": 3,
        "width": 380,
        "height": 280,
        "content": "## Delete Yesterday's Playlist\nThis section deletes the playlist created yesterday. (do not include this on your first run; or, your workflow will stop)"
      },
      "typeVersion": 1
    },
    {
      "id": "c4756eb6-c080-48dd-9941-511fbf405fbe",
      "name": "付箋3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        400,
        0
      ],
      "parameters": {
        "color": 4,
        "width": 360,
        "height": 260,
        "content": "## Create New AI News Playlist\nThis section creates today's playlist."
      },
      "typeVersion": 1
    },
    {
      "id": "33308ef0-fb86-4bce-a81f-0c5ddc4215a1",
      "name": "YouTube",
      "type": "n8n-nodes-base.youTube",
      "position": [
        1580,
        100
      ],
      "parameters": {
        "options": {},
        "videoId": "={{ $('Split Out').item.json.id.videoId }}",
        "resource": "playlistItem",
        "playlistId": "={{ $('Create Playlist').item.json.id }}"
      },
      "credentials": {
        "youTubeOAuth2Api": {
          "id": "alrF3L4QeYVd4Ckn",
          "name": "YouTube account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "2db4a5e2-f177-4c45-a890-8bf140971882",
      "name": "付箋4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1500,
        0
      ],
      "parameters": {
        "color": 6,
        "width": 280,
        "height": 260,
        "content": "## Add Videos to Playlist\nThis section adds videos to the playlist created today."
      },
      "typeVersion": 1
    },
    {
      "id": "7c2945de-9912-4db0-bd4f-6c222b8ebeaf",
      "name": "予定動画を除外",
      "type": "n8n-nodes-base.filter",
      "position": [
        1300,
        100
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "or",
          "conditions": [
            {
              "id": "8884d2e9-b06d-4347-9635-846d7dea168f",
              "operator": {
                "type": "string",
                "operation": "notEquals"
              },
              "leftValue": "={{ $json.snippet.liveBroadcastContent }}",
              "rightValue": "upcoming"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "d822a00b-acfc-4838-ae50-37103e581cbf",
      "name": "プレイリストIDを保存",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        600,
        100
      ],
      "parameters": {
        "columns": {
          "value": {
            "Playlist Group": "AI News",
            "New Playlist ID": "={{ $json.id }}"
          },
          "schema": [
            {
              "id": "Playlist Group",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Playlist Group",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "New Playlist ID",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "New Playlist ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Playlist Group"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1541621778,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1RNah4ZZsLxflQXvMq8AEn3BFpscOC2ygMZ1dPTlk-Kk/edit#gid=1541621778",
          "cachedResultName": "PlaylistId"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1RNah4ZZsLxflQXvMq8AEn3BFpscOC2ygMZ1dPTlk-Kk",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1RNah4ZZsLxflQXvMq8AEn3BFpscOC2ygMZ1dPTlk-Kk/edit?usp=drivesdk",
          "cachedResultName": "Media Links"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "hVq7KRYH68lYmtEB",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "bbbcbe5b-5594-44cb-bb1d-897498b61810",
      "name": "Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        440,
        -220
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "AI News",
              "lookupColumn": "Playlist Group"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1541621778,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1RNah4ZZsLxflQXvMq8AEn3BFpscOC2ygMZ1dPTlk-Kk/edit#gid=1541621778",
          "cachedResultName": "PlaylistId"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1RNah4ZZsLxflQXvMq8AEn3BFpscOC2ygMZ1dPTlk-Kk",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1RNah4ZZsLxflQXvMq8AEn3BFpscOC2ygMZ1dPTlk-Kk/edit?usp=drivesdk",
          "cachedResultName": "Media Links"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "hVq7KRYH68lYmtEB",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "20d814e1-4f1e-4313-949b-961556cd40bf",
      "name": "Telegram",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1880,
        100
      ],
      "webhookId": "5007b956-14f6-4275-ab8d-2c47050b6007",
      "parameters": {
        "text": "Your AI News YT Playlist has been updated.",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "FeG2VD9QbvSMvLxW",
          "name": "Dinar Newscaster"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "b0cfab69-ad82-4d65-8106-0bd4b23dfdb3",
      "name": "付箋5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1820,
        0
      ],
      "parameters": {
        "color": 6,
        "width": 280,
        "height": 260,
        "content": "## Notification of Completion (optional)"
      },
      "typeVersion": 1
    },
    {
      "id": "57ef08c8-b7ca-4af6-963a-67a3d2b80176",
      "name": "0715トリガー",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        180,
        100
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 7,
              "triggerAtMinute": 15
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "d3003e8a-aa46-437e-b246-b9030578ea49",
      "name": "チャンネルを取得",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        800,
        -640
      ],
      "parameters": {
        "url": "https://www.googleapis.com/youtube/v3/search",
        "options": {},
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "q",
              "value": "={{ $json['Channel User Name'] }}"
            },
            {
              "name": "type",
              "value": "channel"
            },
            {
              "name": "maxResults",
              "value": "1"
            },
            {
              "name": "part",
              "value": "snippet"
            },
            {
              "name": "key",
              "value": "AIzaSyARU7upVG5hzoaMHIMaBEXjcYtayo8vPJ4"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "fde3bac7-77be-4322-9b74-2cb7b9ddd17c",
      "name": "Google シートを更新",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1000,
        -640
      ],
      "parameters": {
        "columns": {
          "value": {
            "Link": "=https://www.youtube.com/{{ $('Read Channel Names1').item.json['Channel User Name'] }}",
            "Channel Id": "={{ $json.items[0].id.channelId }}",
            "row_number": "={{ $('Read Channel Names1').item.json.row_number }}",
            "Channel Name": "={{ $json.items[0].snippet.channelTitle }}"
          },
          "schema": [
            {
              "id": "Channel Name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Channel Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Link",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Link",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Channel Id",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Channel Id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Channel User Name",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Channel User Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "row_number"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 944489068,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1RNah4ZZsLxflQXvMq8AEn3BFpscOC2ygMZ1dPTlk-Kk/edit#gid=944489068",
          "cachedResultName": "AI News Channels"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1RNah4ZZsLxflQXvMq8AEn3BFpscOC2ygMZ1dPTlk-Kk",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1RNah4ZZsLxflQXvMq8AEn3BFpscOC2ygMZ1dPTlk-Kk/edit?usp=drivesdk",
          "cachedResultName": "Media Links"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "hVq7KRYH68lYmtEB",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "2b1e067b-436a-4536-ad9f-c55862d496c9",
      "name": "「Test workflow」クリック時",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        440,
        -640
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "1dd572c5-6762-40a0-88aa-d6a9fa2ca0a3",
      "name": "チャンネル名を読み取る1",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        620,
        -640
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 944489068,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1RNah4ZZsLxflQXvMq8AEn3BFpscOC2ygMZ1dPTlk-Kk/edit#gid=944489068",
          "cachedResultName": "AI News Channels"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1RNah4ZZsLxflQXvMq8AEn3BFpscOC2ygMZ1dPTlk-Kk",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1RNah4ZZsLxflQXvMq8AEn3BFpscOC2ygMZ1dPTlk-Kk/edit?usp=drivesdk",
          "cachedResultName": "Media Links"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "hVq7KRYH68lYmtEB",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "43466e82-dc55-4d4e-a6ff-ff2ed977fb3c",
      "name": "付箋6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        380,
        -740
      ],
      "parameters": {
        "width": 820,
        "height": 260,
        "content": "## Create your Channel List\nThis section needs to be put into it's own workflow: this workflow gathers information needed to gather videos for the playlist.  This workflow only needs to be run when a new channel name is added to the Google Sheet."
      },
      "typeVersion": 1
    },
    {
      "id": "149373af-ad35-49bc-b751-6ac919d218b0",
      "name": "付箋7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1260,
        -740
      ],
      "parameters": {
        "width": 820,
        "height": 700,
        "content": "## Instructions\n1. To set this up, you need to create a Google Sheet with the following headings in line 1:\n\n   Channel User Name\n   Channel Name\n   Channel Link\n   Channel ID\n\n2. Copy the 'Create your Channel List' into it's own workflow and link the Sheets links to your new sheet.\n\n3. To get the 'Create your Channel List' to work, you need to visit each channel's page that you want included in your playlist; you need to get the \"@\" name of the channel and add it to the 'Channel User Name' column of your Google Sheet.\n\n   For example: if you wanted to include this channel: Recruit Training Videos - Corporal Stock \n   You would look for this name, to add to the next available row of the 'Channel User Name' column: @CorporalStock\n\n4. Once you add all Channel User Names, run the 'Create your Channel list workflow, and it will fill in the remaining details.\n\n5. Now the 'YT Playlist Creator' can be run; but for the first time, disconnect the 'Delete Yesterday's Playlist' leg, or the workflow will error and stop (because there is no 'Yesterday's Playlist'.\n\nNote: this was made to create a playlist every day, delete yesterday's playlist, and only get the last 8 videos posted within the last 24 hours.  I choose to put the date (YYMMDD format) in front of the playlist, to ensure that it doesn't conflict with another playlist.\n\n   Also, I have it notifying me in Telegram, so I know that the new playlist is posted."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "timezone": "Asia/Manila",
    "callerPolicy": "workflowsFromSameOwner",
    "executionOrder": "v1"
  },
  "versionId": "c154607b-f3b1-4f41-bf77-faec36ce3716",
  "connections": {
    "33308ef0-fb86-4bce-a81f-0c5ddc4215a1": {
      "main": [
        [
          {
            "node": "20d814e1-4f1e-4313-949b-961556cd40bf",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6da4a908-1705-4d3a-8f1a-aa73e36866c7": {
      "main": [
        [
          {
            "node": "7c2945de-9912-4db0-bd4f-6c222b8ebeaf",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bcc83a11-e7e1-4bcb-a054-a2f0cc26c5f0": {
      "main": [
        [
          {
            "node": "6da4a908-1705-4d3a-8f1a-aa73e36866c7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "57ef08c8-b7ca-4af6-963a-67a3d2b80176": {
      "main": [
        [
          {
            "node": "d950c171-0993-4e51-8942-18dca557c70a",
            "type": "main",
            "index": 0
          },
          {
            "node": "bbbcbe5b-5594-44cb-bb1d-897498b61810",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d3003e8a-aa46-437e-b246-b9030578ea49": {
      "main": [
        [
          {
            "node": "fde3bac7-77be-4322-9b74-2cb7b9ddd17c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bbbcbe5b-5594-44cb-bb1d-897498b61810": {
      "main": [
        [
          {
            "node": "1d292e23-4efc-4377-aacf-8c5b9c54e524",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d950c171-0993-4e51-8942-18dca557c70a": {
      "main": [
        [
          {
            "node": "d822a00b-acfc-4838-ae50-37103e581cbf",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d822a00b-acfc-4838-ae50-37103e581cbf": {
      "main": [
        [
          {
            "node": "a871e87e-dc02-4364-83b3-fe378ca60687",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a871e87e-dc02-4364-83b3-fe378ca60687": {
      "main": [
        [
          {
            "node": "bcc83a11-e7e1-4bcb-a054-a2f0cc26c5f0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7c2945de-9912-4db0-bd4f-6c222b8ebeaf": {
      "main": [
        [
          {
            "node": "33308ef0-fb86-4bce-a81f-0c5ddc4215a1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1dd572c5-6762-40a0-88aa-d6a9fa2ca0a3": {
      "main": [
        [
          {
            "node": "d3003e8a-aa46-437e-b246-b9030578ea49",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2b1e067b-436a-4536-ad9f-c55862d496c9": {
      "main": [
        [
          {
            "node": "1dd572c5-6762-40a0-88aa-d6a9fa2ca0a3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

このワークフローの使い方は?

上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。

このワークフローはどんな場面に適していますか?

上級 - その他

有料ですか?

このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。

ワークフロー情報
難易度
上級
ノード数23
カテゴリー1
ノードタイプ9
難易度説明

上級者向け、16ノード以上の複雑なワークフロー

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34