はじめましての方ははじめまして。そうでない方はこんにちは。
どうも、じすと申します。
というわけで、最近AI(人工知能。以下、AI)が話題な昨今。そして、様々な動画投稿サイトにて絶大な人気を生みつつあるShorts(以下、YouTube ShortsをShort、ニコニコショートをショートとする。また、どちらも包含する場合はショートとする)形式。
ショートの普及について、無論ニコニコもその波に呑まれ、5月にニコニコショートをリリースした。
YouTubeでは相当前からあったのだが、ニコニコでは今年。
それはいいんです。でも、パソコンからが非常に使いづらいUIなのです!
それもそのはずで、ショートという動画形式自体がスマートホン用に最適化されており、UIもその独自の解像度に合わせた結果...なのですが、やはりPCには向いてないね。
YouTubeについては、昔からあり、また世界規模ということで、先人たちによって既に従来のプレイヤーで再生できるようにしてくださっているんですよ。
UserScriptという、基本的にどのブラウザでも動かせるようなコードを私は利用させていただいています。
それをTampermonkeyで動かすって感じです。
こういうの↓
https://greasyfork.org/ja/scripts/504848-youtube-shorts-to-normal-video
従来と言っても、URLを変えればいいだけ。
実際のところ、コード自体も難しくないはず...なのですが、初心者にとってはちんぷんかんぷん。
でも、ニコニコショート用の変換URLはないんですよね。
ということで、AIに書かせてみることに。
ただ、勿論、適用に変換してくれるの作って~ってだけだと、まともに動作するものができるとは思えません。
だって、AIは知識ありきで動作するのであって、知識がなければありきたりなことしか書けないのですから。
今回は楽天AIのコーディング支援モードを使ってみました。楽天ユーザーとして、楽天のサービスを使っていきたいのと、普段使いにも便利な子だから。
というわけで、以下のような指示を出してみました。
YouTube用のUserScriptに、YouTube ShortsのURLを通常Prayerのものに変換するものが公開されており、そのコードは以下のとおりである。
(ここに先ほどのYouTube用の、既製品のUserScriptを貼り付けた。今回は省略)
このコードは、Shorts用Prayerのときの"https://www.youtube.com/shorts/(ID) " のURL形式で例えば"https://www.youtube.com/shorts/OIREJ-2nasI "という、"OIREJ-2nasI"という固有のIDを持った動画のURLを従来のPrayerページの"https://www.youtube.com/watch?v=(ID) "、つまり"https://www.youtube.com/watch?v=OIREJ-2nasI "に変換することができるようなScriptである。
これを、ニコニコ動画でも同様なことができるようにしてほしい。
ニコニコでのURL構造は、"https://www.nicovideo.jp/shorts/(ID) "、例えば"https://www.nicovideo.jp/shorts/ss46236001 "がショート用のURLで、"https://www.nicovideo.jp/watch/(ID) "つまり"https://www.nicovideo.jp/watch/ss46236001 "が従来のPrayerでのURLとなる。
このようなコードをUserScriptでニコニコ動画用に書いてほしい。
一部省略しましたが、こんな感じです。
そして、こんな感じのコードを返してきてくれました。
// ==UserScript==
// @name NicoNico Shorts To Normal Watch
// @name:ja ニコニコショートを通常の視聴ページへリダイレクト
// @namespace https://github.com/example/userscripts
// @version 1.0.0
// @description Instantly redirect NicoNico Shorts (https://www.nicovideo.jp/shorts/ID) to the normal watch page (https://www.nicovideo.jp/watch/ID).
// @description:ja ニコニコ動画のショートURL (https://www.nicovideo.jp/shorts/ID) を通常の視聴ページ (https://www.nicovideo.jp/watch/ID) に即座にリダイレクトします。
// @author you
// @match https://www.nicovideo.jp/*
// @match https://sp.nicovideo.jp/*
// @icon https://www.nicovideo.jp/favicon.ico
// @license MIT
// @grant none
// @noframes
// ==/UserScript==
(function () {
"use strict";
const SHORTS_PREFIX = "/shorts/";
const WATCH_PREFIX = "/watch/";
function toWatchUrl(href) {
try {
const url = new URL(href);
if (!url.pathname.startsWith(SHORTS_PREFIX)) return null;
// Extract the ID portion after /shorts/
const id = url.pathname.slice(SHORTS_PREFIX.length).split("/")[0];
if (!id) return null;
// Build new URL as /watch/{id} and keep query/hash if present
url.pathname = WATCH_PREFIX + id;
return url.toString();
} catch {
return null;
}
}
function redirectIfShorts() {
const newUrl = toWatchUrl(location.href);
if (newUrl && newUrl !== location.href) {
// Use replace to avoid polluting history
location.replace(newUrl);
}
}
// Initial check
redirectIfShorts();
// Observe SPA navigations (NicoNico often uses PJAX/SPA patterns)
// 1) History API hook (pushState/replaceState)
["pushState", "replaceState"].forEach((name) => {
const original = history[name];
history[name] = function (...args) {
const ret = original.apply(this, args);
queueMicrotask(redirectIfShorts);
return ret;
};
});
// 2) Listen to popstate for back/forward
window.addEventListener("popstate", redirectIfShorts, { passive: true });
// 3) As a fallback, observe URL changes via MutationObserver (cheap throttle)
const observer = new MutationObserver(() => redirectIfShorts());
observer.observe(document.documentElement, { childList: true, subtree: true });
// Optional: also handle clicks to shorts links to avoid a brief flash
document.addEventListener(
"click",
(e) => {
const a = e.target instanceof Element ? e.target.closest("a[href]") : null;
if (!a) return;
const newUrl = toWatchUrl(a.href);
if (newUrl) {
e.preventDefault();
location.assign(newUrl);
}
},
{ capture: true }
);
})()
これがJavaScriptのJS形式で出力されたので、そのままダウンロード。
これを、Tampermonkeyの新規スクリプトを追加から、そのJSファイルを指定して保存。
そして、試してみることに。
なんと、ちゃんと動いてくれました。
最近のAIはしっかりとしていますね...感心してしまいます。
無論、指示をある程度詳しく書いたというのもありますし、YouTube用のソースコードも貼り付けたからというのもあると思いますが、携帯のspのURLも反映してくれていたので、ちゃんと独自でも気が利いてることがわかります。あとはScriptのアイコンも自動で公式から拾ってきました、笑
似たような方がいらっしゃいましたら、このコードを自由にお使いいただいても構いません。
ZenWatchとか使うと、もっと快適かもね(プレミアム会員なら)
以上、ショート/ShortsのUI過激派からの打開策でした






















