Ngiêm cấm sử đụng PROXY và VPS vào mục đích trái pháp luật bạn sẽ phải chịu toàn bộ trách nhiệm trước pháp luật khi sử dụng dịch vụ của chúng tôi tks!
Wikimedia Commons API metadata: manifest license và tác giả

Wikimedia Commons API metadata: manifest license và tác giả

Chuyên viên Kỹ thuật ProxyVN 04-17-2026 Đang tính... phút đọc

Wikimedia Commons API metadata là cách lấy thông tin của tệp trên Commons qua prop=imageinfo, gồm URL gốc, kích thước, băm và khối extmetadata chứa giấy phép, tác giả, yêu cầu ghi nguồn. Bài này viết cho người cần dùng ảnh Commons trong tài liệu hay sản phẩm và phải chứng minh quyền dùng từng tệp. ProxyVN gọi API thật ngày 05/11/2026 trên ba nhóm tệp, dựng manifest và ghi lại những tệp không có giấy phép đọc được bằng máy.

Wikimedia Commons API metadata: mục tiêu và phạm vi không lặp

Phần này chốt bài toán, đầu ra và ranh giới với các bài gần chủ đề.

Bài toán cần giải

Một nhóm làm tài liệu muốn dùng vài chục ảnh về món phở từ Commons. Có người nghĩ ảnh trên Commons là ảnh tự do, cứ tải về là dùng. Thực tế mỗi tệp có giấy phép riêng, nhiều giấy phép bắt buộc ghi tên tác giả và giấy phép đi kèm. Một số tệp còn không có giấy phép đọc được bằng máy.

Đầu ra nghiệm thu

Đầu ra là manifest CSV, mỗi dòng một tệp. Mỗi dòng có tên tệp, URL gốc, trang mô tả, MIME, kích thước và sha1. Phần quyền gồm mã giấy phép, tên ngắn, URL giấy phép, cờ yêu cầu ghi nguồn, cờ bản quyền và tác giả đã làm sạch HTML. Hai cột cuối ghi trường còn thiếu và trạng thái dùng.

Ranh giới với bài Wikidata và bài cào ảnh

Bài Wikidata SPARQL bằng Python truy vấn thực thể và có thể trả tên tệp ảnh qua thuộc tính hình ảnh. Bài này bắt đầu từ chỗ đã có tên tệp, và chỉ làm một việc: lấy bằng chứng quyền dùng cho từng tệp qua API. Bài không cào ảnh từ HTML của trang bài viết.

Giới hạn của lab

Lab gọi API thật, không đăng nhập, mỗi nhóm một lời gọi, nghỉ 1,5 giây. Ba nhóm tệp lấy từ ba thể loại: Category:Phở, Category:Files with no machine-readable license, Category:Files with no machine-readable author, cộng thêm Category:PD-Vietnam. Lab không tải ảnh. Kết quả là ảnh chụp metadata ngày 05/11/2026.

Ai nên đọc

Người làm nội dung, thiết kế, đào tạo cần ảnh minh họa có quyền dùng rõ. Kỹ sư dữ liệu xây bộ ảnh huấn luyện hay bộ ảnh minh họa cho sản phẩm. Người phụ trách pháp lý cần một bảng giải trình nguồn ảnh.

Những gì bài không làm

Bài không tư vấn pháp lý về giấy phép Creative Commons hay quyền phạm vi công cộng ở từng nước. Bài không hướng dẫn tải lên Commons, không nói về Structured Data on Commons. Phạm vi là đọc metadata giấy phép qua imageinfo và ghi lại đúng những gì API trả.

Thuật ngữ dùng trong bài

Imageinfo là module của action=query trả thông tin tệp. Extmetadata là khối siêu dữ liệu mở rộng trong imageinfo, gom từ trang mô tả tệp và dữ liệu nhúng trong tệp. Mỗi trường extmetadata có value và source. Attribution là yêu cầu ghi tên tác giả hoặc dòng ghi nguồn khi dùng lại.

Vì sao không đọc giấy phép từ HTML trang mô tả

Trang mô tả tệp hiển thị giấy phép bằng bản mẫu, mỗi bản mẫu một kiểu HTML. Cào HTML để đoán giấy phép dễ vỡ và dễ sai. Extmetadata đã gom các bản mẫu chuẩn thành trường có tên cố định. Khi extmetadata không có giấy phép, đó cũng là một thông tin: bản mẫu không chuẩn, cần người đọc.

Commons và Wikipedia khác nhau

Ảnh hiện trên bài Wikipedia thường nằm ở Commons, nhưng một số wiki cho phép tải ảnh cục bộ theo quy tắc sử dụng hợp lý. Ảnh cục bộ đó không có trên Commons và thường không được dùng lại ngoài wiki. Manifest chỉ nhận tệp có descriptionurl trên commons.wikimedia.org.

Lấy metadata file Commons cùng license/author bằng imageinfo với Wikimedia Commons API metadata

Phần này đi qua lời gọi và cấu trúc response đã chạy.

Nguồn tài liệu đã đọc

Trang API:Imageinfo trên MediaWiki mô tả các giá trị iiprop như url, size, mime, sha1, timestamp, user, extmetadata và các tham số iiextmetadatafilter, iiextmetadatalanguage. Lab đối chiếu tài liệu với response thật của commons.wikimedia.org.

Endpoint và tham số

Lab gọi https://commons.wikimedia.org/w/api.php với action=query, format=json, formatversion=2, maxlag=5. Danh sách tệp lấy bằng generator=categorymembers, gcmtype=file, gcmlimit=25. Prop là imageinfo với iiprop là url, size, mime, sha1, extmetadata, timestamp, user.

Lọc trường extmetadata

Extmetadata đầy đủ có hàng chục trường. Lab truyền iiextmetadatafilter gồm LicenseShortName, LicenseUrl, UsageTerms, AttributionRequired, Artist, Credit, Copyrighted, Restrictions, License, ImageDescription, DateTimeOriginal, Attribution. Lọc làm response nhẹ hơn và chỉ giữ thứ cần cho manifest.

Ví dụ request bằng Python

import requests, time
s = requests.Session()
s.headers["User-Agent"] = "ProxyVN-docs-lab/1.0 (https://proxy.vn/; low-volume documentation test) python-requests"
API = "https://commons.wikimedia.org/w/api.php"
F = ("LicenseShortName|LicenseUrl|UsageTerms|AttributionRequired|Artist|Credit|"
     "Copyrighted|Restrictions|License|ImageDescription|DateTimeOriginal|Attribution")
p = dict(action="query", format="json", formatversion="2", maxlag="5",
         generator="categorymembers", gcmtitle="Category:Phở", gcmtype="file", gcmlimit="25",
         prop="imageinfo", iiprop="url|size|mime|sha1|extmetadata|timestamp|user",
         iiextmetadatafilter=F, iiextmetadatalanguage="en")
d = s.get(API, params=p, timeout=30).json()
time.sleep(1.5)
print(len(d["query"]["pages"]), d.get("continue"))

Kết quả lời gọi đầu

API trả HTTP 200 với 25 tệp và khối continue có gcmcontinue. Thể loại Phở có nhiều hơn 25 tệp, lấy tiếp thì gửi lại khối continue như mọi truy vấn action API. Mỗi trang có title, imageinfo là mảng một phần tử chứa url, descriptionurl, mime, size, sha1 và extmetadata.

User-Agent theo chính sách

Wikimedia yêu cầu User-Agent có tên công cụ và thông tin liên hệ. Lab dùng tên client chung của dự án kèm website, không dùng email cá nhân. Không giả User-Agent trình duyệt.

Giới hạn số tệp mỗi lời gọi

Gcmlimit 25 cho 25 tệp mỗi lượt. Với extmetadata, mỗi tệp tốn thêm thời gian xử lý phía máy chủ, nên đừng đẩy lên mức tối đa khi không cần. Nếu đã có danh sách tên tệp, dùng titles với nhiều tên ngăn bằng dấu sổ đứng thay cho generator.

Ngôn ngữ của extmetadata

Lab đặt iiextmetadatalanguage là en. Một số trường như ImageDescription có nhiều ngôn ngữ, API chọn theo tham số này. LicenseShortName cũng có thể đổi theo ngôn ngữ. Giữ cố định một ngôn ngữ cho toàn bộ manifest để so sánh được giữa các lần chạy.

Value và source

Mỗi trường extmetadata là object có value và source. Source có thể là commons-desc-page, tức lấy từ trang mô tả tệp, hoặc từ dữ liệu nhúng trong tệp. Lab giữ source của trường Artist để biết thông tin tác giả đến từ đâu.

Lấy imageinfo và extmetadata cho tên file đã chọn trong Wikimedia Commons API metadata

Phần này đọc từng nhóm trường và cho thấy phân bố thật của 25 tệp.

Phân bố giấy phép

Năm giấy phép một thể loại

Năm giấy phép một thể loại

Trong 25 tệp của Category:Phở, có 17 tệp CC BY-SA 4.0, 5 tệp CC BY 2.0, 1 tệp CC BY-SA 2.0, 1 tệp CC BY-SA 3.0 và 1 tệp CC0. Không tệp nào thiếu LicenseShortName. Cùng một thể loại, cùng chủ đề, nhưng có năm giấy phép khác nhau.

AttributionRequired

24 tệp có AttributionRequired là chuỗi true. Tệp CC0 duy nhất có giá trị false. Giá trị là chuỗi, không phải boolean. So sánh với True của Python sẽ luôn sai. Lab so với chuỗi "true".

Copyrighted

Mọi tệp trong thể loại Phở có Copyrighted là chuỗi True, kể cả tệp CC0. Copyrighted nói tệp có tình trạng bản quyền, không nói tệp có bị cấm dùng. Tệp phạm vi công cộng trong nhóm PD-Vietnam có Copyrighted là False.

License và LicenseShortName

License là mã ngắn như cc-by-sa-4.0, cc-by-2.0, cc0, pd. LicenseShortName là tên hiển thị như CC BY-SA 4.0. Manifest giữ cả hai: mã để lập trình quy tắc, tên để in vào dòng ghi nguồn.

Phiên bản giấy phép quan trọng

CC BY 2.0 và CC BY 4.0 khác nhau ở cách ghi nguồn và một số điều khoản. Năm tệp CC BY 2.0 trong thể loại Phở đều đến từ Flickr, nơi nhiều ảnh cũ dùng phiên bản 2.0. Manifest giữ mã có số phiên bản, không rút gọn thành CC BY.

LicenseUrl

Tệp Creative Commons có LicenseUrl trỏ tới trang giấy phép. Tệp phạm vi công cộng trong nhóm PD-Vietnam không có LicenseUrl. Thiếu URL giấy phép không có nghĩa là thiếu giấy phép. Cột thieu phải tách hai trường hợp này.

Bảng trường đã đọc

Bảng: Bảng trường đã đọc

Trường extmetadata

Ví dụ giá trị

Dùng cho

LicenseShortName

CC BY-SA 4.0

In trong dòng ghi nguồn

License

cc-by-sa-4.0

Quy tắc lọc bằng mã

LicenseUrl

URL trang giấy phép

Dẫn link giấy phép

AttributionRequired

"true" hoặc "false"

Có bắt buộc ghi tên

Copyrighted

"True" hoặc "False"

Phân biệt phạm vi công cộng

Artist

HTML có link

Tên tác giả sau khi làm sạch

UsageTerms

Creative Commons Attribution 4.0

Mô tả điều khoản

Credit và Attribution

Credit thường ghi nguồn gốc ảnh như Own work hay một trang Flickr. Attribution là dòng ghi nguồn mà tác giả yêu cầu, nếu có. Trong 25 tệp của thể loại Phở, lab giữ 80 ký tự đầu của Credit đã làm sạch. Khi Attribution có giá trị, dòng ghi nguồn phải dùng đúng chuỗi đó.

UsageTerms

UsageTerms là câu mô tả điều khoản, ví dụ Creative Commons Attribution 4.0 với tệp CC BY 4.0, hay Public domain với tệp phạm vi công cộng. Trường này hữu ích khi in cho người đọc, nhưng quy tắc lập trình nên dùng mã License.

Trường Restrictions

Restrictions dùng để ghi hạn chế ngoài bản quyền, như quyền nhân thân hay nhãn hiệu. Cả 25 tệp của thể loại Phở có Restrictions rỗng. Manifest vẫn giữ cột này, vì một tệp có hạn chế cần người duyệt dù giấy phép là CC.

Chuẩn hóa URL gốc, author và trường license trong Wikimedia Commons API metadata

Dữ liệu thô chưa dùng ngay được, nhất là trường tác giả.

Artist là HTML

Làm sạch Artist HTML

Làm sạch Artist HTML

24 trên 25 tệp có Artist chứa thẻ HTML. Ví dụ một tệp có Artist là thẻ a rel nofollow trỏ tới trang Flickr của người chụp, nội dung Jael, kèm chữ from Ho Chi Minh City. Đưa thẳng chuỗi này vào dòng ghi nguồn sẽ in cả thẻ HTML ra tài liệu.

Làm sạch bằng lxml

import re
from lxml import html as LH
 
def txt(v):
    if not v:
        return ""
    return re.sub(r"\s+", " ", LH.fromstring(f"<div>{v}</div>").text_content()).strip()
 
artist_raw = em.get("Artist", {}).get("value") or ""
artist_text = txt(artist_raw)
artist_has_html = "<" in artist_raw

Giữ cả bản thô

Manifest giữ artist_text đã làm sạch và cờ artist_has_html. Bản thô nằm trong JSON gốc. Khi cần dẫn link tới trang tác giả, đọc thẻ a từ bản thô. Làm sạch rồi bỏ bản thô thì mất link mà một số giấy phép khuyến khích giữ.

URL gốc và trang mô tả

Imageinfo trả url là đường dẫn tới tệp gốc trên upload.wikimedia.org và descriptionurl là trang mô tả tệp trên Commons. Dòng ghi nguồn nên dẫn tới descriptionurl, nơi có đủ thông tin giấy phép. URL gốc chỉ dùng để tải.

Sha1 và kích thước

Mỗi tệp có sha1 và size. Sau khi tải, băm lại tệp để chắc tệp trên đĩa đúng là bản đã ghi trong manifest. Commons có thể có nhiều phiên bản của cùng một tên tệp. Imageinfo mặc định trả phiên bản hiện tại, kèm timestamp của phiên bản đó.

Người tải lên không phải tác giả

Iiprop user trả tên tài khoản đã tải tệp lên. Người tải lên có thể không phải tác giả, nhất là với ảnh chuyển từ Flickr. Ví dụ các tệp CC BY 2.0 trong thể loại Phở đến từ Flickr, Artist là tên người chụp, user là tài khoản đã chuyển ảnh. Dòng ghi nguồn dùng Artist, không dùng user.

Tên tệp có ký tự đặc biệt

Nhiều tệp có tên tiếng Việt dài, có dấu phẩy, dấu ngoặc, chữ Hán. Khi lưu tệp về máy, đặt tên theo sha1 hoặc theo một ID nội bộ, lưu tên gốc trong manifest. Cách này tránh lỗi đường dẫn trên Windows và tránh trùng tên.

Tên tác giả lặp

Nhiều tệp trong thể loại Phở của cùng một người tải lên, Artist sau khi làm sạch là cùng một tên. Đây là điều bình thường. Manifest vẫn giữ một dòng mỗi tệp, không gộp theo tác giả, vì mỗi tệp có thể có giấy phép khác.

Mã giấy phép thống nhất

Lab giữ nguyên mã License từ API. Nếu dự án có danh sách giấy phép cho phép, so với mã này. Không so với LicenseShortName vì tên hiển thị có thể đổi theo ngôn ngữ đặt trong iiextmetadatalanguage.

Kiểm trường attribution có HTML hoặc thiếu dữ liệu trong Wikimedia Commons API metadata

Phần này đi vào các tệp có vấn đề, lấy từ các thể loại bảo trì của Commons.

Tệp không có giấy phép đọc được bằng máy

Tệp thiếu giấy phép

Tệp thiếu giấy phép

Sáu tệp đầu của Category:Files with no machine-readable license đều có LicenseShortName, LicenseUrl, License, AttributionRequired và Copyrighted là None. API không trả các trường đó. Một số tệp vẫn có Artist, ví dụ NASA/JPL-Caltech. Các tệp còn lại không có cả Artist.

Thiếu giấy phép bằng máy không có nghĩa là tự do

Trang mô tả của các tệp đó có thể ghi giấy phép bằng chữ mà không dùng bản mẫu chuẩn, nên API không đọc ra. Có tệp NASA mà nhiều người nghĩ là phạm vi công cộng. Manifest không được đoán. Trạng thái của các tệp này là can_duyet, người duyệt phải mở trang mô tả và đọc.

Tệp không có tác giả đọc được bằng máy

Sáu tệp đầu của Category:Files with no machine-readable author có giấy phép rõ, ví dụ CC BY 4.0 với AttributionRequired true, nhưng Artist rỗng. Đây là ca khó nhất: giấy phép yêu cầu ghi tên, nhưng API không có tên để ghi. Manifest đánh dấu thiếu artist_text và chuyển sang duyệt.

Tệp phạm vi công cộng không có tác giả

Trong cùng thể loại có các tệp Public domain với AttributionRequired false và Copyrighted False, Artist rỗng. Với các tệp này, thiếu tác giả không chặn việc dùng. Quy tắc phải xét AttributionRequired trước khi coi thiếu Artist là lỗi.

Nhóm PD-Vietnam

Sáu tệp đầu của Category:PD-Vietnam đều có LicenseShortName Public domain, License pd, AttributionRequired false, Copyrighted False, LicenseUrl None. Artist có giá trị như Léon Busy hay See sources. Một số tệp ghi tác giả, một số chỉ ghi xem nguồn.

Phạm vi công cộng phụ thuộc quốc gia

Bản mẫu PD-Vietnam nói tệp thuộc phạm vi công cộng theo luật Việt Nam. Ở nước khác, thời hạn bảo hộ có thể khác. Commons thường đòi tệp phải tự do ở cả nước xuất xứ và Hoa Kỳ. Người dùng ở nơi khác vẫn nên đọc trang mô tả nếu ảnh quan trọng.

See sources không phải tên tác giả

Một số tệp PD-Vietnam có Artist là See sources hoặc Various authors. Làm sạch HTML vẫn giữ nguyên chuỗi đó. Dòng ghi nguồn tự sinh sẽ in See sources như thể đó là tên người. Nên đánh dấu các giá trị này để người viết dòng ghi nguồn sửa tay.

Tệp phạm vi công cộng vẫn nên ghi nguồn

Dù không bắt buộc, ghi tác giả và dẫn trang mô tả là cách làm tốt. Người đọc tài liệu biết ảnh đến từ đâu, và nếu sau này có tranh chấp, dòng ghi nguồn là bằng chứng mình đã dùng theo thông tin Commons công bố.

Thể loại bảo trì là công cụ kiểm

Các thể loại như Files with no machine-readable license được Commons tự động gắn khi bản mẫu thiếu. Lab dùng chúng để có ca thật cho bộ quy tắc. Với bộ ảnh của dự án, có thể kiểm ngược: tệp nào trong manifest nằm trong các thể loại này thì đáng nghi.

Bảng các nhóm tệp

Bảng: Bảng các nhóm tệp

Nhóm

Giấy phép

AttributionRequired

Artist

Trạng thái

Phở, 24 tệp CC BY/BY-SA

Có

true

Có, HTML

Dùng được có ghi nguồn

Phở, 1 tệp CC0

Có

false

Có

Dùng được

Không giấy phép bằng máy

None

None

Có hoặc rỗng

Cần duyệt

Không tác giả, CC BY 4.0

Có

true

Rỗng

Cần duyệt

Không tác giả, Public domain

Có

false

Rỗng

Dùng được

PD-Vietnam

Public domain

false

Có hoặc See sources

Dùng được

Xuất manifest sử dụng ảnh có bằng chứng quyền theo từng file bằng Wikimedia Commons API metadata

Manifest là tài sản chính, nên quy tắc trạng thái phải viết rõ.

Quy tắc trạng thái

Thiếu License hoặc LicenseShortName thì can_duyet. AttributionRequired true mà thiếu Artist thì can_duyet. AttributionRequired true và có đủ thì dung_duoc_co_ghi_nguon. Copyrighted False hoặc AttributionRequired false thì dung_duoc. Restrictions không rỗng thì can_duyet bất kể giấy phép.

Mã gán trạng thái

def status(row):
    if not row["license_code"] or not row["license_short"]:
        return "can_duyet"
    if row["restrictions"]:
        return "can_duyet"
    if row["attribution_required"] == "true":
        return "dung_duoc_co_ghi_nguon" if row["artist_text"] else "can_duyet"
    return "dung_duoc"

Kết quả với thể loại Phở

24 tệp được gán dung_duoc_co_ghi_nguon, 1 tệp CC0 được gán dung_duoc. Không tệp nào cần duyệt. Nhóm không giấy phép bằng máy và nhóm không tác giả có giấy phép CC sẽ ra can_duyet nếu chạy cùng quy tắc.

Dòng ghi nguồn tự sinh

Với tệp dung_duoc_co_ghi_nguon, dòng ghi nguồn có dạng: tác giả, tên tệp hoặc tiêu đề, giấy phép kèm link, nguồn Wikimedia Commons kèm link trang mô tả. Dòng này sinh được từ artist_text, LicenseShortName, LicenseUrl và descriptionurl đã có trong manifest.

Giấy phép share-alike

17 tệp là CC BY-SA 4.0. Share-alike đặt điều kiện cho sản phẩm phái sinh. Manifest ghi đúng mã, nhưng quyết định dùng trong sản phẩm nào thuộc về người phụ trách pháp lý. Lab không coi BY-SA ngang với BY.

Ghi ngày duyệt

Với tệp can_duyet, người duyệt ghi quyết định, lý do và ngày vào hai cột riêng. Tệp được chấp nhận sau khi đọc trang mô tả vẫn giữ trạng thái gốc là can_duyet, cột quyết định ghi dùng được. Cách này giữ dấu vết cho thấy quyết định do người, không do máy.

Tách manifest theo dự án

Một ảnh có thể dùng trong nhiều tài liệu. Manifest chung giữ metadata, bảng phụ ghi ảnh nào dùng ở tài liệu nào. Khi một tệp đổi trạng thái, bảng phụ cho biết những tài liệu cần sửa.

Lưu JSON gốc

Lab lưu raw.json cho thể loại Phở và ba tệp raw cho ba thể loại bảo trì. Khi cần kiểm lại một dòng manifest, mở JSON gốc theo title. Nên lưu kèm ngày gọi, vì người tải lên có thể sửa trang mô tả sau đó.

Danh sách giấy phép chấp nhận

Mỗi dự án nên có danh sách mã giấy phép chấp nhận tự động, ví dụ cc0, pd, cc-by-2.0, cc-by-4.0. Mã share-alike và mã có điều kiện phi thương mại đi qua người duyệt. Danh sách này nằm trong tệp cấu hình, không viết cứng trong hàm gán trạng thái.

Không tải ảnh trước khi duyệt

Manifest được dựng chỉ từ metadata. Chỉ tệp có trạng thái dùng được mới vào danh sách tải. Tệp cần duyệt chờ quyết định. Cách này tránh việc ảnh chưa rõ quyền nằm sẵn trong thư mục dự án và bị dùng nhầm.

Đầu ra nghiệm thu: Manifest file URL license attribution và ghi nhận trường license thiếu của Wikimedia Commons API metadata

Phần này liệt kê điều kiện để coi manifest là xong.

Tệp manifest.csv

Mỗi tệp một dòng với các cột title, url, descriptionurl, mime, size, sha1, license_short, license_url, license_code, attribution_required, copyrighted, restrictions, artist_text, artist_has_html, credit_text, attribution_field, thieu, trang_thai.

Kiểm cột thiếu

Cột thieu liệt kê trường bắt buộc vắng mặt. Tệp nhóm không giấy phép bằng máy phải có license_short trong cột thieu. Tệp phạm vi công cộng thiếu LicenseUrl không bị tính là thiếu nếu có License là pd.

Kiểm trạng thái

Không tệp nào có giấy phép rỗng mà trạng thái là dùng được. Không tệp nào yêu cầu ghi nguồn mà thiếu tác giả lại được dùng tự động. Lab kiểm hai điều kiện này trên cả bốn thể loại.

Kiểm khóa duy nhất

Mỗi title chỉ xuất hiện một lần trong manifest. Khi gom từ nhiều thể loại, một tệp có thể thuộc hai thể loại và bị đọc hai lần. Gom theo title trước khi ghi, giữ một dòng.

Kiểm làm sạch HTML

Không dòng nào có artist_text chứa ký tự nhỏ hơn hay lớn hơn. Lab kiểm trên 25 tệp của thể loại Phở, artist_has_html bật ở 24 dòng, artist_text sạch ở cả 25.

Bảng nghiệm thu của lab

Nghiệm thu manifest ảnh

Nghiệm thu manifest ảnh

Bảng: Bảng nghiệm thu của lab

Hạng mục

Kết quả 05/11/2026

Tệp Category:Phở

25, có continue

Số loại giấy phép

5

Artist có HTML

24/25

AttributionRequired kiểu

Chuỗi "true"/"false"

Nhóm không giấy phép bằng máy

6/6 trường license None

Nhóm không tác giả CC BY 4.0

Artist rỗng, cần duyệt

PD-Vietnam

pd, không LicenseUrl

Những gì lab chưa chạy

Lab chưa lấy hết thể loại Phở qua continuation, chưa thử iiextmetadatalanguage là vi, chưa thử phiên bản cũ của tệp, chưa đọc Structured Data on Commons. Lab cũng chưa tải ảnh để kiểm sha1.

Vận hành Wikimedia Commons API metadata trong quy trình dùng ảnh

Manifest có giá trị khi nó đi cùng ảnh trong suốt vòng đời tài liệu.

Khi nào gọi lại

Gọi lại metadata trước mỗi lần xuất bản tài liệu dùng ảnh. Trang mô tả có thể được sửa, giấy phép có thể được làm rõ, tệp có thể bị xóa vì vi phạm. So manifest mới với cũ, tệp đổi trạng thái thì báo người phụ trách.

Tệp bị xóa

Nếu một tệp không còn trên Commons, API trả missing. Tài liệu đang dùng ảnh đó nên được xem lại. Tệp bị xóa vì vi phạm bản quyền là tín hiệu mạnh rằng mình cũng không nên dùng tiếp.

Nhịp gọi

Một lời gọi với gcmlimit 25 hoặc danh sách titles lấy được metadata của nhiều tệp. Với vài trăm tệp, chỉ cần vài chục lời gọi, nghỉ 1 tới 2 giây mỗi lời gọi. Không cần song song.

Tải ảnh có kiểm

Khi đã duyệt, tải ảnh từ url với User-Agent như khi gọi API, tuần tự, nghỉ giữa các tệp. Sau khi tải, băm sha1 và so với manifest. Lệch thì xóa tệp đã tải và ghi lỗi, có thể tệp vừa được tải lên phiên bản mới.

Ảnh thu nhỏ thay cho ảnh gốc

Tài liệu web thường không cần ảnh gốc vài chục megapixel. Imageinfo hỗ trợ iiurlwidth để lấy URL ảnh thu nhỏ. Lab chưa chạy tham số này. Dùng ảnh thu nhỏ giảm băng thông cho cả hai bên, giấy phép vẫn là giấy phép của tệp gốc.

Proxy ở tầng mạng

API Commons công khai, gọi thẳng là cách nên dùng. Proxy chỉ cần khi mạng nội bộ bắt buộc, và không thay đổi giấy phép hay dữ liệu trả về. Cách ghi chuỗi proxy có ở bài định dạng proxy, vai trò proxy trong thu thập có ở bài Web Scraping proxy là gì. Khi cần IP Việt Nam cho tác vụ khác, anh em có thể mua proxy tại trang chủ ProxyVN.

Ảnh dùng trong huấn luyện mô hình

Khi gom ảnh để huấn luyện mô hình, điều kiện ghi nguồn và share-alike vẫn áp dụng theo cách mà người phụ trách pháp lý của dự án diễn giải. Manifest giúp trả lời câu hỏi ảnh nào, giấy phép gì, tác giả là ai, cho từng mẫu trong bộ dữ liệu.

Báo cáo thay đổi giấy phép

Mỗi lần gọi lại, so license_code, attribution_required và artist_text với lần trước. Thay đổi nào cũng ghi vào báo cáo. Một tệp đổi từ CC BY sang CC BY-NC hiếm khi xảy ra, nhưng nếu có, tài liệu thương mại phải xem lại ngay.

Khóa phiên bản

Lab chạy Python 3.12.10, requests 2.34.2, lxml 6.1.3. Tên trường extmetadata ổn định nhiều năm nhưng không có cam kết. Giữ bộ test đọc JSON đã lưu.

Ảnh công khai trên Commons không có nghĩa là dùng tự do không ghi nguồn. Mỗi tệp một giấy phép, mỗi dòng manifest một bằng chứng.

Wikimedia Commons API metadata: câu hỏi thường gặp

Các câu dưới đây gom những điểm hay bị hỏi.

Ảnh trên Commons có dùng tự do được không?

Tùy từng tệp. Phần lớn yêu cầu ghi tên tác giả và giấy phép. Một số share-alike đặt điều kiện cho sản phẩm phái sinh.

Vì sao AttributionRequired so với True bị sai?

Giá trị là chuỗi "true" hoặc "false". So với chuỗi, không so với boolean.

Artist có thẻ HTML thì làm sao?

Làm sạch bằng trình đọc HTML để lấy chữ, giữ bản thô để lấy link tác giả khi cần.

Tệp không có giấy phép bằng máy có được dùng không?

Không dùng tự động. Mở trang mô tả và đọc. Nếu vẫn không rõ, đừng dùng.

Tệp NASA có phải luôn phạm vi công cộng?

Không nên giả định. Lab thấy tệp NASA trong nhóm không có giấy phép bằng máy. Đọc trang mô tả của từng tệp.

Có cần tải ảnh để lấy metadata không?

Không. Imageinfo trả đủ thông tin quyền và kích thước. Chỉ tải tệp đã qua duyệt.

Có dùng được user làm tác giả không?

Không nên. User là người tải lên, có thể khác người chụp. Dùng Artist.

Lấy tiếp các tệp sau 25 tệp đầu thế nào?

Gửi lại khối continue có gcmcontinue mà API trả, cho tới khi không còn khối continue.

Đổi ngôn ngữ extmetadata có đổi giấy phép không?

Không đổi giấy phép, chỉ đổi cách hiển thị một số trường. Mã License giữ nguyên.

Manifest có thay được trang mô tả không?

Không thay được. Manifest là bản tóm tắt có cấu trúc lấy từ API tại một ngày. Khi có tranh chấp hay câu hỏi khó, trang mô tả tệp trên Commons vẫn là nơi xem đầy đủ nhất, nên dòng ghi nguồn luôn dẫn tới đó.

Wikimedia Commons API metadata và những điều cần nhớ

Wikimedia Commons API metadata cho đủ bằng chứng quyền dùng từng tệp khi đọc imageinfo với extmetadata, làm sạch Artist HTML, so AttributionRequired như chuỗi và tách rõ tệp thiếu giấy phép bằng máy. Manifest giữ một dòng mỗi tệp, gán trạng thái theo quy tắc viết rõ, và chỉ tải ảnh đã qua duyệt. Proxy.vn - Nhà cung cấp dịch vụ proxy chất lượng hàng đầu Việt Nam khuyên anh em giữ manifest đi cùng ảnh trong mọi tài liệu dùng Wikimedia Commons API metadata.

TIN TỨC LIÊN QUAN