Commons:コマンドライン・アップロード

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search
This page is a translated version of a page Commons:Command-line upload and the translation is 97% complete. Changes to the translation template, respectively the source language can be submitted through Commons:Command-line upload and have to be approved by a translation administrator.

ウィキメディア・コモンズに素材をアップロードするには、コマンドライン・ツールが利用できます。

ローカルファイルをアップロードするツール

スクリプト 依存関係 バッチ・アップロード {{Information}} support
Nichalp's Upload Script Perl Yes 7 licenses
Anuta Perl, Python and csv_creator.pl Yes 7 licenses
Simple Commons Uploader Python Yes only Cc-by-sa-2.0
upload.py from Pywikibot Python No none

Nichalpさんのアップロード用スクリプト

Perl のスクリプトで特定のフォルダに収納したファイルをすべて CSV 形式に書き出します。説明、ライセンス要件、カテゴリ、緯度経度その他、なんでも情報を記入します。また対象の写真にw:ja:Exchangeable_image_file_format Exif データを付与でき、GPS データ、名称、ライセンス要件などのデータです。さらに加えて、作業中に画像を回転させたり改名したりできます。

Wmigdaさんのアップロード用スクリプト

Nichalpさんのアップロード用スクリプトのPython版ですが、Nichalpさんの2つのPerlスクリプトのうちのひとつが生成する upload.csv ファイルに依存します。

必要条件:少なくともPerlおよびPython、ならびにNichalpさんの2つのスクリプトのうちひとつが必要で、詳細は解説文書をご参照ください

Fastilyさんのアップロード用スクリプト

基本情報およびカテゴリ(格納しているフォルダの名前によって決定される)と共に自分のコンピュータ上のフォルダ全体をアップロードすることができるPythonプログラム。

他のウェブサイトからアップロードするツール

Flickrripper

Flickrripper は多量の画像を Flickr からウィキメディア・コモンズに楽にアップロードする Python自由なプログラムです。プログラムそのものはmw:Manual:Pywikibot/flickrripper.py/ja に説明してあります。

Python ウィキペディア・ボット

Python のフレームワークにはファイルのアップロード用のさまざまなツールが含まれます。それらは Python とpywikibot フレームワークのインストールを受け、初めて作動します。実行前に個別のアップロードを検証するようでは、それはボット作業とは呼べません(下記のverifyDescription オプションをご参照ください。)

詳しい使用法は下記をご参照ください。

このツールのログイン方法は、設定ファイルに以下の指定をします。

family = 'commons'
mylang = 'commons'
usernames['commons']['commons'] = 'nick'

使用法:

  • Upload.py - コモンズへのファイルのアップロードに使用。
  • Imagecopy.py - ローカルのウィキにある画像をコモンズへ移動するため使用。
  • Nowcommons.py - コモンズに転写した画像をローカルのウィキから削除するときに使用。
pywikibot の UploadRobot を利用者のスクリプトで使う場合のサンプル
# -*- coding: utf-8  -*-

import sys

import pywikibot
from pywikibot.specialbots import UploadRobot

def complete_desc_and_upload(filename, pagetitle, desc, date, categories):
    #complete this once if applies to all files

    description = u"""{{Information
|Description    = {{en|1=""" + desc + """}}
|Source         = <!-- if applicable: {{own}} --->
|Author         = <!-- your name:  --->
|Date           = """ + date + """
|Permission     = 
|other_versions = 
}}
=={{int:license-header}}==
<!-- your license --->

""" + categories + """
[[Category:Taken with camera 123]]
"""
    url = [ filename ]
    keepFilename = False        #set to True to skip double-checking/editing destination filename
    verifyDescription = True    #set to False to skip double-checking/editing description => change to bot-mode
    targetSite = pywikibot.getSite('commons', 'commons')
    
    bot = UploadRobot(url, description=description, useFilename=pagetitle, keepFilename=keepFilename, verifyDescription=verifyDescription, targetSite=targetSite)
    bot.run()

def main(args):
    #list each file here
    
    filename    = """testimage-1.jpg"""
    pagetitle   = """testimage-1-from asdfasdfa.jpg"""
    desc        = """Mount St Helens viewed from ... in the rain"""
    date        = "2010-04-07"
    categories  = """[[Category:Locality]]
[[Category:Theme]]
[[Category:View type]]
[[Category:Feature1]]
[[Category:Feature2]]"""
    complete_desc_and_upload(filename, pagetitle, desc, date, categories)


    #sample with:  - local file name identical to file name at Commons
    #              - date as previous file
    #              - less quotes (no CR or " in fields)
    filename   = "testimage-2.jpg"
    pagetitle  = filename
    desc       = "Mount St Helens as seen from ... at sunset"
    categories = "[[Category:Locality]] [[Category:Theme]] [[Category:View type]] [[Category:Feature1]] [[Category:Feature2]]"
    complete_desc_and_upload(filename, pagetitle, desc, date, categories)
   

if __name__ == "__main__":
    try:
        main(sys.argv[1:])
    finally:
        pywikibot.stopme()

pywikipediabot 系のその他のツールは、multichill/bot および erfgoedbot をご参照ください。

BotClasses.php

ボットによっては、User:BrooklynMuseumBot のように BotClasses.php に依拠する PHP で書いてあります。