当Netflix从5星级评分方案转换为大拇指向上/向下模式时,我意识到我已经坐了十多年的评分,并担心它们会消失。
我开始在Netflix上对电影进行评级,因为那时候,评级推动了他们的推荐引擎。 您评分的电影越多,推荐的建议就越微调。 他们在页面的一小部分只是询问您是否看过随机电影,并要求您对其评分。 每次您给一个评分,它就会被另一个替换。 我曾经坐在那里,给电影评分,直到我不知道它在显示什么。
- Ammy Virk新歌,妻子,照片,视频,所有歌曲和信息
- Twitter的反应:Robert Wuhl喜欢我们的Lollygaggers Unis
- 这真是一场灾难!
- 一年中的100部电影:#1蓝色天鹅绒
- 下一个电影院的乔治·卢卡斯
这就是我想要保留的可追溯到2004年的1300多个评分的方法。 我花了一些时间进行研究,并决定将我的评级转给IMDb。 在与电影有关的网站中,它们似乎最不可能做出重大改变或在一夜之间消失。
不幸的是,没有简单的过程可以将评级从Netflix转移出去。 如果您进行搜索,您会发现对Netflix不再提供的API的引用,但让我为您节省一些时间:截至2017年,Netflix没有提供任何导出分级的方法。 他们唯一拥有的是“我的活动”页面,其中列出了您评价过的每部电影。
同样,IMDb不提供任何导入电影分级的方法。 奇怪的是,它们确实允许您将评级导出为CSV格式,但是您不能导入任何内容,即使IMDb自己的导出文件也是如此。
值得庆幸的是,如果您对一点PHP代码和命令行工作感到满意,就有一种方法可以完成这项工作。
免责声明:这种过程本质上是脆弱的。 Netflix或IMDb可能会随时更改某些破坏这些工具的内容,而且任何人都无能为力。 这只是作为对我有用的文档,而不是针对所有人的防弹说明。 我不能担任技术支持。 请遵循以下说明,后果自负,等等。祝您好运!
从Netflix导出您的评分
要从Netflix中获取分级,您需要获取Netflix Ratings Extractor脚本,该脚本可以作为浏览器扩展程序安装在Chrome中。
安装扩展程序后,转到Netflix上的“我的活动”页面。 该脚本将在页面顶部注入一个带有“开始”按钮的大面板。
当您开始该过程时,脚本将重复l将浏览器窗口滚动到页面底部,直到所有电影都加载完毕。 然后,它将您的等级转换为制表符分隔的值,并在文本框中显示。 它看起来像这样:
ID Title Rating Date
80025919 Mad Max: Fury Road 5 6/3/15
20557937 The Matrix 5 11/8/04
脚本完成后,您需要将该文本框的内容复制到一个新文件,您可以将其命名为netflix-ratings.csv
。
好消息! 即使您对这些说明没有更多的了解,现在也可以备份自己的评分。 您可以将此文件导入任何可以用制表符分隔的值的文件中,例如Excel或Google Docs电子表格。
将您导出的等级转换为PHP数组
下一步需要一个包含电影评分的PHP数组。 您需要手动编辑CSV文件,才能将其转换为PHP数组,如下所示:
<?php
return [
[
"title" => "Mad Max: Fury Road",
"rating" => "5.0"
],
[
"title" => "The Matrix",
"rating" => "5.0"
]
];
使用Sublime Text祝我好运,但是您可以使用支持基于正则表达式的搜索和替换的任何文本编辑器。 不同的编辑者对此的处理方式不同,但是请尝试搜索:
(.*?)\t(.*?)\t(.*?)\t(.*?)\n
并替换为:
[\n\t"title" => "$2",\n\t"rating" => "$3"\n],\n
那应该将每个电影分级更改为正确的格式。 然后,您可以手动清理文件的开头和结尾。
最后,将文件重命名为netflix-ratings.php
。
将您的评分导入IMDb
为此,我们将使用一个称为IMDb Ratings Importer的PHP脚本。 要使用它,您需要安装Composer,这是PHP的依赖项管理工具。
这是我在Mac上使用的命令:
# download the imdb-importer project
git clone git@github.com:tomzx/imdb-importer.git
# switch to the project directory
cd imdb-importer/
# download the composer install script
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# run the composer install script
php composer-setup.php
# remove the composer install script
php -r "unlink('composer-setup.php');"
# install the project dependencies
php composer.phar install
# create the script you'll run
touch runme.php
现在,您需要编辑runme.php
以使其成为一个PHP脚本,该脚本将加载导入器,定义所需的信息并运行它。 这是一个例子:
<?php
require_once 'vendor/autoload.php';
use ImdbImporter\Importer;
$input = require_once 'netflix-ratings.php';
$id = 'YOUR-IMDb-ID-HERE';
$rating_base = 5;
$importer = new Importer($id, $rating_base);
$importer->submit($input);
您可以通过登录IMDb网站并检查登录cookie来找到您的IMDb ID。 在Chrome浏览器中,您可以通过以下方法执行此操作:转到“偏好设置”>“高级”>“内容设置”>“ Cookie”>“查看所有Cookie和网站数据”。 搜索“ imdb”,然后查看imdb.com的cookie。 打开名为“ id”的cookie,“内容”字段中的长字符串是您的IMDb ID。 将其复制到PHP脚本中的$id
变量中。
此时,将您的netflix-ratings.php
文件复制到项目目录中,以便脚本可以使用它。
现在,您应该可以在命令行中输入php runme.php
并查看脚本运行。 如果您的评分数组以某种方式损坏,它会让您知道,但希望您会开始看到如下输出:
Searching for The Good Place
Submitting rating for {"title":"The Good Place","rating":"5.0"} tt4955642
Submitted rating for The Good Place
Searching for Marvel's Luke Cage
Could not find title "Marvel's Luke Cage"
Searching for BoJack Horseman
Submitting rating for {"title":"BoJack Horseman","rating":"5.0"} tt3398228
Submitted rating for BoJack Horseman
您会注意到其中许多“找不到标题”错误。 在1318个评分中,我遇到了238个错误,错误率为1.8%。 这些都是由Netflix的标题与IMDb略有不同引起的。 例如,Netflix有“ Marvel’s Luke Cage”,而IMDb只有“ Luke Cage”。
您可以在IMDb上搜索正确的标题,然后修改评级数组。 但是我想出了如果我还是手动搜索它们,我最好还是在那里时给它们打分。 我花了一个小时左右的时间来评估进口商脚本遇到的所有问题。
Linux用户的替代方法:
在寻找IMDb进口商时,我找到了一个有前途的项目叫RatS,它是“ RATings Synchronization”的缩写。它声称能够从IMDb,Flixter和Trakt之类的网站中提取和导入评级。 您不能使用它从Netflix导出,但是如果将我们之前创建的CSV文件转换为JSON格式,则应该可以将其用作源。
但是,RatS是为Linux编写的,我找不到在Mac上运行它的简单方法。 可能是可行的,但是要花更多的工作,而不是我想为此项目投入的资金。 鉴于我刚刚写的所有内容,这似乎很愚蠢,但是我有一些PHP经验,因此这种方法对我来说没有那么吓人。
结论
你应该这样做吗? 可能不会。 我不会说谎,这是一个愚蠢的复杂过程。 如果我没有想要保留的十年以上的评级,那我可能就走了。
奇怪的是,我这样做很有趣。 我有一种老式的刺激,试图使用并非旨在实现我想要的功能的工具将数据从一个来源入侵到另一个来源。 它使我想起了我何时开始使用计算机。 没有任何记录或简单的记录,并且您不得不为解决问题而战,直到您解决了这些问题或认为这不值得花时间。
总而言之,在一个早晨的时间里,我为此花了大约四个小时,而我很快就达到了“走开”的地步。 如果PHP脚本已损坏,或者导入程序的错误率更高,我可能会放弃。 然后,我将写一篇有关Netflix之类的公司如何使故意难以获取数据的文章发牢骚。 但我会留给别人掩饰。